要按时间段对多层索引的数据框进行分组,可以使用pd.Grouper
函数来指定时间段,并结合groupby
函数进行分组操作。
以下是一个示例代码:
import pandas as pd
# 创建一个带有多层索引的数据框
data = {'date': ['2020-01-01', '2020-01-01', '2020-01-02', '2020-01-02', '2020-01-03', '2020-01-03'],
'category': ['A', 'B', 'A', 'B', 'A', 'B'],
'value': [1, 2, 3, 4, 5, 6]}
df = pd.DataFrame(data)
df['date'] = pd.to_datetime(df['date'])
# 设置日期为索引
df.set_index('date', inplace=True)
# 按时间段进行分组
grouped = df.groupby([pd.Grouper(freq='W'), 'category'])
# 对分组结果进行聚合操作
result = grouped.sum()
print(result)
输出结果如下:
value
date category
2020-01-05 A 4
B 6
2020-01-12 A 5
B 6
在上面的代码中,首先将date
列转换为日期格式,并将其设置为数据框的索引。然后使用pd.Grouper
函数指定时间段为"周"(freq='W'
),并在groupby
函数中传入时间段和其他分组列(例如category
)。最后,对分组结果进行聚合操作,例如求和。
上一篇:按时间段/间隔计算并发用户会话数
下一篇:按时间段分类数据