import pandas as pd
# 创建一个示例数据表
df = pd.DataFrame({'col1': ['A', 'A', 'A', 'B', 'B', 'C', 'C'],
'col2': ['2021-01-01', '2021-02-01', '2021-03-01', '2021-01-15', '2021-02-15', '2021-01-01', '2021-02-01']})
# 将日期转为datetime格式
df['col2'] = pd.to_datetime(df['col2'])
# 按照col1列中的连续值进行分组
df['grp'] = (df['col1'] != df['col1'].shift()).cumsum()
# 选取每个分组中的最早和最晚日期
result = df.groupby('grp')['col2'].agg(['min', 'max'])
# 打印结果
print(result)
输出的结果为:
min max
grp
1 2021-01-01 2021-03-01
2 2021-01-15 2021-02-15
3 2021-01-01 2021-02-01
上一篇:按照一个列值进行2小时分组