python - 如何对 pandas 中的索引和列进行分组

标签 python pandas aggregate

假设我有一个简单的数据框,其中包含日期时间索引和三列 - 一列是值,一列是聚合指示器,最后一列是唯一标识符。该索引在数据帧中并不唯一,因为它在指标的多个实例上重复。即它看起来像这样:

index, val, aggregating indicator, unique_ref
1-Jan, 1, set_a,r1
2-Jan, 2, set_a,r2
1-Jan, 3, set_a,r3
2-Jan, 4, set_a,r4
1-Jan, 5, set_b,r5
2-Jan, 6, set_b,r6

是否可以通过索引以及 aggregating_indicator 来聚合(一步)val 和 group?

即我想要的结果是

index, sum, aggregating_indicator
1-Jan, 4, set_a // ie 1+3
2-Jan, 6, set_a // ie 2+4
1-Jan, 5, set_b
2-Jan, 6, set_b

分两步完成是可以的...但我想知道是否可以用一种简洁的方式完成。

最佳答案

你可以这样做:

>>> df.reset_index().groupby(['index','aggregating indicator'])['val'].sum().reset_index()
   index aggregating indicator  val
0  1-Jan                 set_a    4
1  1-Jan                 set_b    5
2  2-Jan                 set_a    6
3  2-Jan                 set_b    6

关于python - 如何对 pandas 中的索引和列进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27231783/

相关文章:

python enum.Enum _value_ 与值

python - 将属性(不是函数)传递给 python `pandas.DataFrame.style`

python - 对 Pandas 数据框中的列使用 map()

mysql - 如何使用左连接来使用聚合函数?数据库

c# - 如何在 DDD 中对聚合建模并持久化到数据库

python - 如何安全地运行另一个Python文件?

python - 将数组写入 csv python(一列)

python - 如何使用 curve_fit 和线性线函数使用散点图绘制下边界?

python - Pandas groupby 聚合截断最早日期而不是最旧日期

python 在永无止境的进程上运行覆盖