【发布时间】:2015-10-20 12:14:43
【问题描述】:
我使用 Pandas 读取了一个 csv 文件。然后,我正在使用下面的代码检查数据中是否有任何重复的行:
import pandas as pd
df= pd.read_csv("data.csv", na_values=["", " ", "-"])
print df.shape
>> (71644, 15)
print df.drop_duplicates().shape
>> (31171, 15)
我发现有一些重复的行,所以我想看看哪些行出现了多次:
data_groups = df.groupby(df.columns.tolist())
size = data_groups.size()
size[size > 1]
这样做我得到Series([], dtype: int64)。
此外,我可以通过以下方式找到重复的行:
duplicates = df[(df.duplicated() == True)]
print duplicates.shape
>> (40473, 15)
所以df.drop_duplicates() 和df[(df.duplicated() == True)] 显示有重复的行,但groupby 没有。
我的数据由字符串、整数、浮点数和 nan 组成。
我是否误解了上面提到的函数中的某些内容或发生了其他事情?
【问题讨论】: