获取组中的最大日期,并用最大日期填充组的NaN行

时间:2019-05-14 09:24:46

标签: python pandas

我有一个如下数据框。

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

1 个答案:

答案 0 :(得分:1)

Series.fillnaGroupBy.transform一起使用,其大小与max所填充的原始大小相同:

df['date_to'] = df['date_to'].fillna(df.groupby('key')['date_to'].transform('max'))