我有以下pandas数据帧。
ex_one ex_two weight fake_date
0 228055 231908 1 2004-12-17
1 228056 228899 1 2000-02-26
2 228050 230029 1 2003-01-27
3 228055 230564 1 2001-07-25
4 228059 230548 1 2002-05-04
这就是我想要的:
来自ex_one
列的获取示例228055
,然后根据fake_date
(max
)和fake_date
计算出现次数({{1} } min
228055
答案 0 :(得分:1)
这是一种方式。
df['fake_date'] = pd.to_datetime(df['fake_date'])
g = df.groupby('ex_one')['fake_date'].agg(['min', 'max', 'count']).reset_index()
res = df.merge(g, how='left')
<强>结果强>
ex_one ex_two weight fake_date min max count
0 228055 231908 1 2004-12-17 2004-12-17 2004-12-17 1
1 228056 228899 1 2000-02-26 2000-02-26 2000-02-26 1
2 228050 230029 1 2003-01-27 2003-01-27 2003-01-27 1
3 228059 230564 1 2001-07-25 2001-07-25 2002-05-04 2
4 228059 230548 1 2002-05-04 2001-07-25 2002-05-04 2
<强>解释强>
fake_date
列为datetime
类型,如果尚未完成。groupby
数据框。