首页 > 解决方案 > Groupby 数据框从每个组成员中获取非空元素

问题描述

我有一个数据框,在某些情况下,一个案例的记录不止一行,某些行中有空值,如下所示:

    date_rounded          1  2        3     4     5
0   2020-04-01 00:05:00 0.0  NaN     NaN    NaN   NaN   
1   2020-04-01 00:05:00 NaN  1.0     44.0   44.0  46.454    
2   2020-04-01 00:05:00 NaN  NaN     NaN    NaN   NaN   

我只想有一行填充数据,到目前为止我有:

df.groupby(['date_rounded']).apply(lambda df0: df0.fillna(method='ffill').fillna(method='bfill').drop_duplicates())    

这行得通,但是速度很慢,有更好的主意吗?

谢谢

标签: pythonpandasgroup-byfillna

解决方案


您还可以使用groupbyand first

df.groupby("date_rounded").first()

                       1    2     3     4       5
date_rounded                                     
2020-04-01 00:05:00  0.0  1.0  44.0  44.0  46.454

推荐阅读