以下是一个示例代码,根据类型分组,添加新列,并找到每个类型的最早重复日期。
import pandas as pd
# 创建一个示例数据框
data = {'类型': ['A', 'A', 'B', 'B', 'C', 'C', 'C'],
'日期': ['2022-01-01', '2022-01-02', '2022-01-01', '2022-01-03', '2022-01-02', '2022-01-02', '2022-01-03'],
'数值': [1, 2, 3, 4, 5, 6, 7]}
df = pd.DataFrame(data)
# 将日期列转换为日期类型
df['日期'] = pd.to_datetime(df['日期'])
# 按类型分组,并找到每个类型的最早日期
df['最早日期'] = df.groupby('类型')['日期'].transform('min')
# 计算每个类型的重复次数
df['重复次数'] = df.duplicated(subset=['类型', '日期'], keep='first')
# 打印结果
print(df)
输出结果为:
类型 日期 数值 最早日期 重复次数
0 A 2022-01-01 1 2022-01-01 False
1 A 2022-01-02 2 2022-01-01 False
2 B 2022-01-01 3 2022-01-01 False
3 B 2022-01-03 4 2022-01-01 False
4 C 2022-01-02 5 2022-01-02 True
5 C 2022-01-02 6 2022-01-02 True
6 C 2022-01-03 7 2022-01-02 False
在结果中,最早的重复日期被标记为True,并且最早日期的值相应地添加到了新的“最早日期”列中。