在保护大Pandas南部的同时丢弃复制品

2024-05-12 19:48:33 发布

您现在位置:Python中文网/ 问答频道 /正文

当使用drop_duplicates()方法时,我减少了重复项,但也将所有NaNs合并到一个条目中。如何在保留空条目的行(如np.nan, None or '')时删除重复项?

import pandas as pd
df = pd.DataFrame({'col':['one','two',np.nan,np.nan,np.nan,'two','two']})

Out[]: 
   col
0  one
1  two
2  NaN
3  NaN
4  NaN
5  two
6  two


df.drop_duplicates(['col'])

Out[]: 
   col
0  one
1  two
2  NaN

Tags: 方法dfnp条目colnanoutone
2条回答

好吧,一个不太好的解决方法是首先保存NaN并将它们放回:

temp = df.iloc[pd.isnull(df).any(1).nonzero()[0]]
asd = df.drop_duplicates('col')
pd.merge(temp, asd, how='outer')
Out[81]: 
   col
0  one
1  two
2  NaN
3  NaN
4  NaN

试试看

df[(~df.duplicated()) | (df['col'].isnull())]

结果是:

col
0   one
1   two
2   NaN
3   NaN     
4   NaN

相关问题 更多 >