添加groupby最小/最大/计数聚合

时间:2018-03-28 00:19:00

标签: python pandas date dataframe

我有以下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_datemax)和fake_date计算出现次数({{1} } min

的值
228055

1 个答案:

答案 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

<强>解释

  • Caste fake_date列为datetime类型,如果尚未完成。
  • 使用3个聚合创建groupby数据框。
  • 左边合并原始数据框。