累积合并具有相同索引的行

时间:2021-05-06 14:29:33

标签: python pandas numpy csv

在 python pandas 中,我有一个看起来像这样的数据框:

[{"origin": ["*"],
"responseHeader": ["X-Requested-With", "Access-Control-Allow-Origin", "Content-Type"],
"method": ["GET", "HEAD", "POST"],
"maxAgeSeconds": 3600}]

某些日期重复,具有不同的计数值。我想将这些值合并为一行,如下所示:

> df
               count
date                
2021-04-03  23.0
2021-04-04  12.0
2021-04-04  10.0
2021-04-05  42.0
2021-04-06  39.0
...

如果有帮助,数据源是 CSV 文件。可能有一种方法可以在 for 循环中执行此操作,但我想知道是否可以使用 pandas 中的函数来完成此操作?谢谢。

3 个答案:

答案 0 :(得分:1)

在这种情况下,您可以按索引分组并对值求和

>>> result = df.groupby(df.index)['count'].sum()
>>> result
date
2021-04-03    23.0
2021-04-04    22.0
2021-04-05    42.0
2021-04-06    39.0
Name: count, dtype: float64

答案 1 :(得分:0)

您可以使用groupby()

new_df = df.groupby(['date']).sum()

答案 2 :(得分:0)

从您的示例数据中可以看出,date 应该是行索引而不是数据列。因此,您需要额外的步骤将 groupby()sum() 结果(Pandas 系列)转换回 .to_frame() 的数据帧,如下所示:

df.groupby('date')['count'].sum().to_frame(name='count')

输出:

            count
date             
2021-04-03   23.0
2021-04-04   22.0
2021-04-05   42.0
2021-04-06   39.0