V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  NoOneNoBody  ›  全部回复第 46 页 / 共 167 页
回复总数  3332
1 ... 42  43  44  45  46  47  48  49  50  51 ... 167  
```
def groupedSimilarFilenames(filenames):
'''
将相似文件名分组\n
输出类似格式\n
filenames preffix suffix size \n
0 cover.jpg NaN NaN 0 \n
1 top.png NaN NaN 0 \n
2 9.jpg NaN .jpg 0 \n
3 015a.jpg 0 a.jpg 1 \n
4 008.jpg 0 .jpg 9 \n
5 010.jpg 0 .jpg 9 \n
6 011.jpg 0 .jpg 9 \n
7 012.jpg 0 .jpg 9 \n
8 013.jpg 0 .jpg 9 \n
9 014.jpg 0 .jpg 9 \n
10 016.jpg 0 .jpg 9 \n
11 017.jpg 0 .jpg 9 \n
12 018.jpg 0 .jpg 9 \n
\n
size 为该项所在分组的成员个数\n
依据条件可筛选特别的文件名\n
'''
df = pd.DataFrame(filenames, columns=['filenames']) # 即使一维 filenames 也能直接变成竖向
pattern = r'^(?P<preffix>.+\D)?(?P<number>\d+)(?P<suffix>.+)?'
# pattern = r'^(?P<preffix>.+?\D)?(?P<number>\d+)(?P<suffix>.+)?'
df1 = pd.concat([df, df['filenames'].str.extract(pattern, flags=re.IGNORECASE)], axis=1)
gf = ['preffix','suffix']
if df1['preffix'].isna().all():
gf = ['suffix']
g = df1.groupby(gf, as_index=False)
df1['size'] = g.transform('size').fillna(0).astype(int)
return df1.sort_values('size', ascending=False, ignore_index=True)
```

这是一个我经常用的匹配文件名的函数
你可以用字段名替换 filenames ,然后匹配一下,当然正则和 groupby 部分你要修改一下,改成符合你的需求,这样你就可以把字段名分组了
@cs1024 #8
问题是你也没有说清楚,给的例子也是最简单,谁看也不知道你的难点在哪啊

你这个字段名有什么规律么,是否必然是字母或多个字母+数字,字符和数字两个是否分开
然后,相同的字母组合,其数字是否必定是正整数,例如 1,2,3,4……顺序可以不对,但是否有缺的,如 1,2,4……
只要有规律,自然可用正则来捕获
pattern = r'^(?P<preffix>.+\D)?(?P<number>\d+)(?P<suffix>.+)?'
类似这样的正则就能分开了,然后用 groupby 就能找到符合的一批字段名
再补充一下,用正则的话
str.contains 是部分匹配,用 str.match 是整个字段名匹配,可以选择不同的方式和对应的正则
也可以不用正则,参数改为 regex=False 即可
#5 typo ,应是 columns
哦,漏看了,这样 dataframe 方便些

mask =df.colums.str.starswith('a') # 这里是表示 a 开头,所以要确保没有其他无关的 a 开头字段名
cols_a = df.colums[mask]
df['a'] = df[cols_a].sum(axis=1)
b 照样替换即可

或者可以用正则
mask = df.colums.str.contains(一个正则, case=False, regex=True)
cols_a = df.colums[mask]
嗯,sql select 漏了 id ,自行补上
sql : select a1+a2+a3 as a, b1+b2 as b from ...

pandas:
df['a'] = df[['a1', 'a2', 'a3']].sum(axis=1)
df['b'] = df[['b1', 'b2']].sum(axis=1)
result = df[['id', 'a', 'b']].copy()

100w+不慢,用 numba 更快
你把“互联网”按服务业的方式重新捋一遍
PS:早上班早下班是制造业
150 天前
回复了 Shinu 创建的主题 问与答 「央视曝光乳胶床品造假乱象」佛了
其实也是常识了,在中国活个几十年这就是常识了,如果没有几十年的话,听听上一代也能知道
不谈国人素质,单说监管就能想到管不来,你想想他们切身利益的税收都完善不了,其他不是迫切的事有什么能“尽善尽美”的?厂家又不是完全本地,遍布全国,流通交易的,只有食品安全才是重点,其他多靠自律和举报

所以好多产品首先要买方“自检”,就是购前调查,不要想象得太美好
大部分人因为信息搜集能力不足,只是采取“眼不见为净”的态度
要活得精致、极致,那就去调查,以及不要省钱
@lividton001 #22
我没苹果设备,自然也不知道,只是疑问句
看样子也是汇总只给总价,那试试要求苹果给详单,看他们给不给

之前老妈摔伤住院,要走保险,保险公司除了总费用的发票,还要求提供详单,当然医院是给这个的,只是要多跑两趟走流程,当时是大三年期间有点烦而已
这种情况你应该用 kiwi 一类的 llm ,gpt 等用(指免费的)的是某时间点前的信息汇总
另有部分如 kiwi/gemini pro 等是可以实时搜文章总结的

问也有技巧,不要问结论,而是让它帮你搜,当然可能也是搜出十来条结果,不会像搜索引擎那么多
然后针对性追问,或者排除部分后让它二搜补充

说到底就是一个词:思考。不要人家说什么就是什么(这样的话无论用什么都是信息茧房),要思考、验证、再问……
如果你报的是主板维修费用,为何判决书提电池?关电池什么事?
152 天前
回复了 jack778 创建的主题 互联网 网易的软件越来越流氓了, 可以比肩 360 了
对于第二条,不同帐号也能限么?
330-54=276
276/4=69

D
4.09*3=12.27
12.27+69=81.27

ABC
(54-12.27)/3=13.91
13.91+69=82.91

明显获利不等

不能单算付出,应该算收益均分
上述例子换成:
ABCD 四个人集资 300 元投资,连本带利获得 330 元,取回当天 D 不在,ABC 三人提前庆祝花掉 54 元,然后 ABC 三人按每人 4.09 元还给 D ,剩下 276 元均分,这样 D 总共获得 81.27 元,ABC 各获得 82.91 元(含花掉的 54 元),各位觉得这样分对么?
“小孩学费”,这话如果是真实的,他的生活一定很悲摧,我借给他的话就不计较什么时候还了
但如果是假话的话……就完全不指望什么了
看你心里能接受哪个
@nbhaohao #6
个人觉得就应该按 82.5 来算
82.5 才叫集资,需要计算分红的。75 只是借资,还是无息的,和原意差距甚大,不合理
@nbhaohao #4
你的意思是那 30 不能折现?
我现在明白“京东取消订单优惠也没了”的理论依据了
1 ... 42  43  44  45  46  47  48  49  50  51 ... 167  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5435 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 51ms · UTC 05:54 · PVG 13:54 · LAX 21:54 · JFK 00:54
Developed with CodeLauncher
♥ Do have faith in what you're doing.