Как отбросить дубликаты там, где нет данных? - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть df, который выглядит следующим образом:

Id   column2   column3  column4   column5
1            1         1        1        nan
1            1         nan      nan      1

Я хочу отбросить дубликаты через столбец Id и сохранить данные в столбцах, где Id содержит данные, как мне это сделать??

new df:

 Id   column2   column3  column4   column5
1         1         1        1        1

В настоящее время я использую эти строки кода без успеха в сохранении строк с данными:

1.  df = df.drop_duplicates(subset='Id',keep='last')

2.  df = df.loc[df.notnull().sum(1).groupby(analysis.Id).idxmax()]

1 Ответ

0 голосов
/ 27 сентября 2018

Используйте GroupBy.last для возврата последних не значений NaN для групп:

df1 = df.groupby('Id', as_index=False).last()
print (df1)
   Id  column2  column3  column4  column5
0   1        1      1.0      1.0      1.0    df1 = df.groupby('id', as_index=False).last()
...