簡體   English   中英

Groupby dataframe 從每個組成員中獲取不 null 元素

[英]Groupby dataframe to get not null elements from each group member

我有一個 dataframe ,在某些情況下,一個案例的記錄不止一行,某些行中有空值,如下所示:

    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())    

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

謝謝

您還可以使用groupbyfirst

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

如果您需要在每個組內填寫,可以使用groupby().applybfill

df.groupby('date_rounded', as_index=False).apply(lambda x: x.bfill().iloc[0])

Output:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM