gpt4 book ai didi

python - 在 Pandas 中使用 groupby 查找重复项

转载 作者:行者123 更新时间:2023-12-02 02:53:15 40 4
gpt4 key购买 nike

我使用 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.duplicates() == True)] 显示存在重复行,但 groupby 没有。

我的数据由字符串、整数、 float 和 nan 组成。

我是否误解了上面提到的函数中的某些内容或发生了其他情况?

最佳答案

只需添加 reset_index() 即可将聚合重新调整到新的数据帧。

此外,size() 函数会创建一个未标记的 0 列,您可以使用它来过滤重复行。然后,只需找到结果数据帧的长度即可像其他函数一样输出重复项的计数:drop_duplicates()duplicated()==True

data_groups = df.groupby(df.columns.tolist())
size = data_groups.size().reset_index()
size[size[0] > 1] # DATAFRAME OF DUPLICATES

len(size[size[0] > 1]) # NUMBER OF DUPLICATES

关于python - 在 Pandas 中使用 groupby 查找重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33225631/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com