Фрейм данных Groupby для получения ненулевых элементов от каждого члена группы - PullRequest
0 голосов
/ 05 мая 2020

У меня есть фрейм данных, где в некоторых случаях кейс имеет записи в более чем одной строке с нулями в некоторых строках: , пока что у меня есть:

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

это работает, но медленно, есть идеи получше?

Спасибо

Ответы [ 2 ]

2 голосов
/ 05 мая 2020

Вы также можете использовать groupby и 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
1 голос
/ 05 мая 2020

Если вам нужно заполнить каждую группу, вы можете использовать groupby().apply и bfill:

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

Вывод:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...