【问题标题】:How to grouby only on one column sum others and do nothing to the reste with pandas?如何仅按一列对其他列进行分组,而对熊猫的其余部分不做任何事情?
【发布时间】:2019-12-13 13:43:15
【问题描述】:

我有一个包含更多列的 DataFrame,但我会给你一个更小的例子, 我只需要对一个键进行分组,对选定的列求和,而不会丢失我之前拥有的其他列

import pandas as pd
df = pd.DataFrame({'color': ['blue', 'blue', 'yellow', 'yellow'], 'count': [1,3,4,5],'count2': [2,1,4,2],'bip': [2,2,11,1],'fix': ['A','B','C','D']})
df

    color   count   count2  bip    fix
0   blue    1         2      2      A
1   blue    3         1      2      B
2   yellow  4         4      11     C
3   yellow  5         2      1      D

现在我只需要对如下列进行分组颜色总和:count1 和 count2,而不会丢失 bip 和修复信息,所以我需要得到这个:

    color   count   count2  bip    fix
0   blue    4         3      2      A
1   blue    4         3      2      B
2   yellow  9         6      11     C
3   yellow  9         6      1      D

感谢您的帮助:)

【问题讨论】:

    标签: python pandas pandas-groupby


    【解决方案1】:

    使用pandas.DataFrame.update

    df.update(df.groupby('color')[['count', 'count2']].transform(sum))
    print(df)
    

    输出:

       bip   color  count  count2 fix
    0    2    blue      4       3   A
    1    2    blue      4       3   B
    2   11  yellow      9       6   C
    3    1  yellow      9       6   D
    

    【讨论】:

      猜你喜欢
      • 2023-02-17
      • 2019-04-02
      • 2018-02-15
      • 1970-01-01
      • 2018-11-22
      • 2022-12-12
      • 2016-02-02
      • 2021-07-20
      • 2016-06-24
      相关资源
      最近更新 更多