首页 > 解决方案 > 如何在没有数据的地方删除重复项?

问题描述

我有一个看起来像这样的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()]

标签: pythonpython-3.xpandasduplicates

解决方案


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

推荐阅读