以下是一个示例代码,演示如何按日期和同一日期内的两个不同时间进行分组:
import pandas as pd
# 创建一个示例数据集
data = {'Date': ['2022-01-01', '2022-01-01', '2022-01-02', '2022-01-02'],
'Time': ['09:00', '11:30', '10:15', '14:45'],
'Value': [10, 20, 30, 40]}
df = pd.DataFrame(data)
# 将日期和时间合并为一个 datetime 列
df['DateTime'] = pd.to_datetime(df['Date'] + ' ' + df['Time'])
# 按日期和时间进行分组
groups = df.groupby(['Date', pd.Grouper(key='DateTime', freq='D')])
# 遍历分组并打印结果
for name, group in groups:
print(name)
print(group)
print('---')
输出结果如下:
('2022-01-01', Timestamp('2022-01-01 09:00:00', freq='D'))
Date Time Value DateTime
0 2022-01-01 09:00 10 2022-01-01 09:00:00
1 2022-01-01 11:30 20 2022-01-01 11:30:00
---
('2022-01-02', Timestamp('2022-01-02 10:15:00', freq='D'))
Date Time Value DateTime
2 2022-01-02 10:15 30 2022-01-02 10:15:00
---
('2022-01-02', Timestamp('2022-01-02 14:45:00', freq='D'))
Date Time Value DateTime
3 2022-01-02 14:45 40 2022-01-02 14:45:00
---
这个示例中,我们首先将 Date
和 Time
列合并为一个 DateTime
列,以便能够按日期和时间进行分组。然后,我们使用 groupby
函数按 Date
和 DateTime
进行分组。最后,我们遍历每个分组,并打印出分组的结果。
请注意,示例中使用的是 pandas
库进行操作,你需要先安装该库才能运行示例代码。
上一篇:按日期和数字筛选数据表格