import pandas as pd
# 创建数据
data = {'date': ['2020-01-01', '2020-01-02', '2020-01-02', '2020-01-03'],
'event': ['A', 'B', 'C', 'A'],
'num': [3, 4, 2, 1]}
df = pd.DataFrame(data)
# 按日期和事件类型分组,并计算事件数量的和
grouped = df.groupby(['date', 'event']).sum()
print(grouped)
输出结果如下:
num
date event
2020-01-01 A 3
2020-01-02 B 4
C 2
2020-01-03 A 1
可以看到,按日期和事件类型分组后,每组对应一个唯一的行索引(由多个列索引组成)和对应的事件数量。
# 按日期分组,并查看每个事件类型的事件数量的和
grouped = df.groupby(['date', 'event']).sum().reset_index()
result = grouped.pivot(index='date', columns='event', values='num')
print(result)
输出结果如下:
event A B C
date
2020-01-01 3.0 NaN NaN
2020-01-02 NaN 4.0 2.0
2020-01-03 1.0 NaN NaN
从输出结果可以看出,按日期分组后,每个事件类型的事件数量的和都分别作为列来展示。
总的来说,按日期和列分组是