我有一个如下所示的df:
Id column2 column3 column4 column5
1 1 1 1 nan
1 1 nan nan 1
我想通过Id
列删除重复项,并将数据保留在Id
有数据的列中,我该怎么做?
新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()]
答案 0 :(得分:1)
使用GroupBy.last
返回每组的最后一个非NaNs值:
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()