熊猫:减去Groupwise最小
问题描述:
我有一个数据帧df
与列date
,并从中我想减去date
最小的分组(由PID
分组)。熊猫:减去Groupwise最小
所以,我计算出的最小的GroupWise的是这样的: df.groupby(by="PID").min()
,想减去它在那里我stucked: df['date'] = df['date'] - ???
这里有什么下一步?或者有没有更简单的方法?
我的数据看起来在某种程度上是这样的:
----------------------------
| PID | DATE |
----------------------------
| 5 | 2017-05-05 |
| 7 | 2016-10-04 |
| 7 | 2017-05-03 |
| 5 | 2016-12-20 |
| 5 | 2017-02-01 |
答
我想你想transform
,这与相同的索引df
返回Series
,所以是可能的减柱:
print (df.groupby(by="PID")['DATE'].transform('min'))
0 2016-12-20
1 2016-10-04
2 2016-10-04
3 2016-12-20
4 2016-12-20
Name: DATE, dtype: datetime64[ns]
df['new'] = df['DATE'] - df.groupby(by="PID")['DATE'].transform('min')
print (df)
PID DATE new
0 5 2017-05-05 136 days
1 7 2016-10-04 0 days
2 7 2017-05-03 211 days
3 5 2016-12-20 0 days
4 5 2017-02-01 43 days
它会更容易用你的数据的一些例子来回答这个问题(比如5个第一行) –