gpt4 book ai didi

python - 用列表中的子字符串替换 Pandas 列中的字符串

转载 作者:太空宇宙 更新时间:2023-11-04 10:14:37 25 4
gpt4 key购买 nike

我有一个DF:

DF
camp, value
asd_abcd_gr_yxz_aaaa, 5
efgh_kr_ijk, 10
hjssaasd_kr_adsad, 15
asdas_kr_asd, 2
asd_fr_asda_bb_bbbbbbb, 12
adklasdj_gr_asdsad, 3

还有更长的时间。

与列表 [_gr_, _kr_, _fr_, etc..] 中的元素进行比较后,我希望得到的结果是

DF
camp, value
gr, 8
kr, 27
fr, 12

最好尽可能短而不通过 DF 循环。该列表比 _gr_, _kr_, _fr_

长得多

提前致谢!

最佳答案

你可以试试str.containsloc :

print df
camp value
0 abcd_gr_yxz 5
1 efgh_kr_ijk 10
2 hjssaasd_kr_adsad 15
3 asdas_kr_asd 2
4 asd_fr_asda 12
5 adklasdj_gr_asdsad 3

ABR = ['_gr_', '_kr_', '_fr_']

for x in ABR:
df.loc[df['camp'].str.contains(x), 'camp'] = x
print df
camp value
0 _gr_ 5
1 _kr_ 10
2 _kr_ 15
3 _kr_ 2
4 _fr_ 12
5 _gr_ 3

print df.groupby('camp')['value'].sum().reset_index()
camp value
0 _fr_ 12
1 _gr_ 8
2 _kr_ 27

str.extractstr.strip :

ABR = ['_gr_', '_kr_', '_fr_']

s = '(' + '|'.join(ABR) + ')'
print s
(_gr_|_kr_|_fr_)

df['camp'] = df['camp'].str.extract(s, expand=False)

df = df.groupby('camp', as_index=False)['value'].sum()
df['camp'] = df['camp'].str.strip('_')
print df
camp value
0 fr 12
1 gr 8
2 kr 27

关于python - 用列表中的子字符串替换 Pandas 列中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36180695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com