【问题标题】:Summing duplicate rows in pandas dataframe with multiple columns将 Pandas 数据框中的重复行与多列相加
【发布时间】:2019-08-29 02:48:56
【问题描述】:

我的 Pandas 数据框看起来像

Month/Year col1 col2 col3 col4 
May,2019   13   12    11   33 
June,2019  23   11    16   31 
July,2019  21   14    17   21 
Aug,2019   11   12    13   23 
Aug,2019   10   20    20   20 
Sept,2019  11   23    12   13 
Sept,2019  20   30    10   20

我想将 Month/Year col 中所有重复的行和相应的列相加

Month/Year col1 col2 col3 col4
May,2019   13   12    11   33
June,2019  23   11    16   31
July,2019  21   14    17   21
Aug,2019   21   32    33   43
Sept,2019  31   53    22   33

我查看了其他示例,并在月/年尝试 groupby 添加其余列但没有用

df.groupby(['Month/Year'], as_index=False)['col1','col2','col3','col4].sum()

Goupby 将重复记录的所有列加在一起

【问题讨论】:

  • df.groupby(['Month/Year'])[['col1','col2','col3','col4]].sum() 呢?
  • df.groupby(['Month/Year'], as_index=False, sort=False)['col1','col2','col3','col4'].sum() 为我工作
  • 或者只是df.groupby('Month/Year').sum()
  • 但没用 ...什么没用?有什么错误吗?还是不想要的结果?

标签: python pandas dataframe


【解决方案1】:

用途:

df.groupby('Month/Year', sort=False, as_index=False).sum()

输出:

  Month/Year  col1  col2  col3  col4
0   May,2019    13    12    11    33
1  June,2019    23    11    16    31
2  July,2019    21    14    17    21
3   Aug,2019    21    32    33    43
4  Sept,2019    31    53    22    33

【讨论】:

  • sort=False 与众不同 ;)
【解决方案2】:

col4 后面缺少一个撇号 '

以下语句正在产生所需的输出:

data.groupby(['Month/Year'])[['col1','col2','col3','col4']].sum()

【讨论】:

    猜你喜欢
    • 2020-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-13
    • 1970-01-01
    • 1970-01-01
    • 2019-02-02
    相关资源
    最近更新 更多