gpt4 book ai didi

python - Pandas 列值合并

转载 作者:行者123 更新时间:2023-11-28 22:32:25 26 4
gpt4 key购买 nike

我有一个像这样的 Pandas 数据框:

df = pd.DataFrame({'a1':['astr1','jmtr2','astr2','mmsk3',
'astr6','jmtr2','astr2','mhhk',
'astr5','mmsk','astr6','astr1',
'mstr1','mhhk','mstr2','mhhk'],
'a2':[x for x in np.random.randn(16)]})
df

a1 a2
0 astr1 -0.490416
1 jmtr2 0.651627
2 astr2 0.784004
3 mmsk3 -1.595870
4 astr6 1.228631
5 jmtr2 -1.644518
6 astr2 -0.311709
7 mhhk -1.284221
8 astr5 -0.356339
9 mmsk -0.071046
10 astr6 1.620838
11 astr1 -0.717384
12 mstr1 0.830618
13 mhhk -0.020226
14 mstr2 -0.056465
15 mhhk -0.160234

我现在要做的是如果前四个字母相同则合并a1。同时,要加上a2的值。

像这样:

    a1     a2
0 astr $sum of astr$
1 jmtr $sum of jmtr$
2 mmsk $sum of mmsk$
3 mhhk $sum of mhhk$
4 mstr $sum of mstr$

最佳答案

我想你需要groupby通过 a1 的前 4 个字符与 indexing with str和聚合sum :

print (df.a1.str[:4])
0 astr
1 jmtr
2 astr
3 mmsk
4 astr
5 jmtr
6 astr
7 mhhk
8 astr
9 mmsk
10 astr
11 astr
12 mstr
13 mhhk
14 mstr
15 mhhk
Name: a1, dtype: object

print (df.a2.groupby(df.a1.str[:4]).sum().reset_index())
a1 a2
0 astr 1.112200
1 jmtr -1.559358
2 mhhk 1.113222
3 mmsk -0.023918
4 mstr -2.526466

关于python - Pandas 列值合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40932747/

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