【问题标题】:pandas column values merge熊猫列值合并
【发布时间】:2017-04-17 09:30:18
【问题描述】:

我有一个这样的熊猫数据框:

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$

【问题讨论】:

    标签: python string pandas group-by sum


    【解决方案1】:

    我认为您需要 groupby 的第一个 4 字符 a1indexing 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
    

    【讨论】:

      猜你喜欢
      • 2019-01-03
      • 2021-01-08
      • 1970-01-01
      • 2018-01-08
      • 2019-08-01
      • 2014-10-20
      • 2023-02-05
      • 2018-05-10
      • 2023-03-06
      相关资源
      最近更新 更多