我有一个如下数据框。
key date_from date_to
176785 21-04-2016 15:46 04-05-2016 15:39
176785 01-05-2016 00:00 NaN
100000 10-05-2018 20:29 30-01-2019 09:35
100000 01-06-2018 00:00 30-06-2018 00:00
100000 01-07-2018 00:00 31-07-2018 00:00
100000 01-08-2018 00:00 31-08-2018 00:00
100000 01-09-2018 00:00 30-09-2018 00:00
100000 01-10-2018 00:00 31-10-2018 00:00
100000 01-11-2018 00:00 30-11-2018 00:00
100000 01-12-2018 00:00 31-12-2018 00:00
100000 01-01-2019 00:00 Nan
我需要使用组中的最大date_to填充NaN值。
我期望输出数据帧如下。
key date_from date_to
176785 21-04-2016 15:46 04-05-2016 15:39
176785 01-05-2016 00:00 04-05-2016 15:39
100000 10-05-2018 20:29 30-01-2019 09:35
100000 01-06-2018 00:00 30-06-2018 00:00
100000 01-07-2018 00:00 31-07-2018 00:00
100000 01-08-2018 00:00 31-08-2018 00:00
100000 01-09-2018 00:00 30-09-2018 00:00
100000 01-10-2018 00:00 31-10-2018 00:00
100000 01-11-2018 00:00 30-11-2018 00:00
100000 01-12-2018 00:00 31-12-2018 00:00
100000 01-01-2019 00:00 30-01-2019 09:35
答案 0 :(得分:1)
将Series.fillna
与GroupBy.transform
一起使用,其大小与max
所填充的原始大小相同:
df['date_to'] = df['date_to'].fillna(df.groupby('key')['date_to'].transform('max'))