我尝试创建一个新功能来显示给定组的最小(最低)数据。
我的数据如下:
| 动物ID | 周期号 | 提要日期 | 开始日期周期 |
|---|---|---|---|
| 1 | A | 2021-02-06 | 2020-09-20 |
| 1 | A | 2021-02-10 | 2020-09-20 |
| 1 | 乙 | 2021-02-14 | 2020-09-20 |
| 2 | A | 2021-02-20 | 2020-09-30 |
| 2 | A | 2021-02-21 | 2020-09-30 |
对于每一个animal_id和cycle_nr,我都想返回第一个feed_date。
我想要的 df 看起来像这样
| 动物ID | 周期号 | 提要日期 | 开始日期周期 | 首次推送日期 |
|---|---|---|---|---|
| 1 | A | 2021-02-06 | 2020-09-20 | 2021-02-06 |
| 1 | A | 2021-02-10 | 2020-09-20 | 2021-02-06 |
| 1 | 乙 | 2021-02-14 | 2020-09-20 | 2021-02-14 |
| 2 | A | 2021-02-20 | 2020-09-30 | 2021-02-20 |
| 2 | A | 2021-02-21 | 2020-09-30 | 2021-02-20 |
我尝试了多种方法,但这些选项都没有返回正确的值:
df['first_feed_date'] = df.groupby(['animal_id', 'cycle_nr']).agg({'feed_date' : np.min})
df['first_feed_date'] = df.loc[df.groupby(['animal_id', 'cycle_nr'])['feed_date'].idxmin()]
df['first_feed_date']= df.groupby(["animal_id", "cycle_nr"])["feed_date"].transform(min) …Run Code Online (Sandbox Code Playgroud)