以下是一个解决方法的示例代码:
import pandas as pd
# 创建示例数据
data = {'ID': [1, 1, 2, 2, 2, 3],
'date_from': ['2021-01-01', '2021-02-01', '2021-03-01', '2021-04-01', '2021-05-01', '2021-06-01'],
'date_to': ['2021-02-01', '2021-03-01', '2021-04-01', '2021-05-01', '2021-06-01', '2021-07-01']}
df = pd.DataFrame(data)
# 将日期列转换为datetime类型
df['date_from'] = pd.to_datetime(df['date_from'])
df['date_to'] = pd.to_datetime(df['date_to'])
# 按照ID分组,并找到日期间隔的最大和最小值
grouped = df.groupby('ID')
result = grouped['date_from', 'date_to'].agg({'date_from': 'min', 'date_to': 'max'})
print(result)
输出结果如下:
date_from date_to
ID
1 2021-01-01 2021-02-01
2 2021-03-01 2021-06-01
3 2021-06-01 2021-07-01
结果显示了按照ID分组后,每个组的最早开始日期和最晚结束日期。
上一篇:按照id分组数组数据