我有一个像这样的数据框:
我正在尝试使用类似这样的东西来实现:
id_a | date
12 | 2020-01-01
12 | 2020-01-02
13 | 2020-01-01
13 | 2020-01-03
14 | 2020-01-01
14 | 2020-01-02
14 | 2020-01-06
我希望能够根据id_a对每个组的最大日期和最小日期进行差异比较,以得到类似以下的结果:
id_a | date | diff
12 | 2020-01-01 | 1
12 | 2020-01-02 | 1
13 | 2020-01-01 | 2
13 | 2020-01-03 | 2
14 | 2020-01-01 | 5
14 | 2020-01-02 | 5
14 | 2020-01-06 | 5
我正在尝试使用类似这样的东西来实现:
df['diff'] = df.groupby('id_a').apply(lambda x: max(x['date']) - min(x['date']))
但是我有些困难
我是否在正确的道路上?
transform
而不是apply
:df.groupby('id_a')['date'].transform(lambda x: x.max() - x.min())
- Erfan