首页 > 解决方案 > 如何在不删除 NaN 值的情况下删除 pandas 中的重复项

问题描述

我有一个要查询的数据框,我只想从某个列中获取唯一值。
我尝试执行此代码:

    database = pd.read_csv(db_file, sep='\t')
    query = database.loc[database[db_specifications[0]].isin(elements)].drop_duplicates(subset=db_specification[1])

db_specification只是一个包含我查询的两列的列表。
有些值是NaN,我不想认为它们是重复的,我该如何实现呢?

标签: pythonpandasdrop-duplicates

解决方案


您可以先选择全部NaN,然后在数据框的其余部分删除重复项。

mask = data.isna().any()
data = pd.concat([data[mask], data[~mask]])

推荐阅读