首页 > 解决方案 > 熊猫 drop_duplicates 删除空值的问题

问题描述

我使用 drop_duplicates 根据列从我的数据框中删除重复项,问题是该列对于某些条目是空的,而那些最终被删除的条目是否有办法让函数忽略空值。这是一个例子

    Title                  summary                  
0   TITLE A                summaryA       
1   TITLE A                summaryB  
2                          summaryC       
3                          summaryD

使用这个

data.drop_duplicates(subset ="TITLE", 
                     keep = 'first', inplace = True)

我得到这样的结果:

    Title                  summary                  
0   TITLE A                summaryA        
2                          summaryC       

但由于最后两行不是重复的,我想保留它们.. 有没有办法让 drop_duplicates 忽略空值?

标签: pandasdrop-duplicates

解决方案


用索引号填充缺失值?也许不是最漂亮的方式,但它有效

df = pd.DataFrame(
    {'Title':['TITLE A', 'TITLE A', None, None], 'summary':['summaryA', 'summaryB', 
    'summaryC', 'summaryD']}
    )

df['_id'] = df.index
df['_id'] = df['_id'].apply(str)
df['Title2'] = df['Title'].fillna(df['_id'])  

df.drop_duplicates(subset ="Title2", keep = 'first')

推荐阅读