python - Pandas DataFrame.drop_duplicates() 缺少一些东西?

标签 python python-3.x pandas

我对 Python 比较陌生,对 pandas 甚至更陌生。我正在尝试开发一个简单的网络爬虫来搜索 Indeed 的职位发布。这主要是为了学习语言,但如果我从中找到一份新工作,那就更好了。

数据的性质意味着将会有很多重复项,这就是我到目前为止所看到的。因此,我想在将数据帧发送到 .csv 文件之前删除重复项。我尝试在我正在处理的代码中实现 DataFrame.drop_duplicates() ,但它不起作用。因此,我创建了一个单独的脚本来仅测试 drop.duplicates() 方法,而不必先检查所有其他代码以确保我的语法正确并且它按预期运行。这就是我所拥有的:

import pandas as pd
df=pd.DataFrame({'A':['1', '2', '3'], 'B':['1', '2', '4']})
print(df)
df1=df.drop_duplicates()
print(df1)

我的期望是 drop_duplicates() 会从 df 中删除前两行并将结果分配给 df1。除此之外,它们都是一样的。

然后我尝试了以下方法,确定 DataFrame 应用的默认索引列存在干扰:

import pandas as pd
df=pd.DataFrame({'A':['1', '2', '3'], 'B':['1', '2', '4']})
print(df)
df1=df.drop_duplicates(subset=["A", "B"])
print(df1)

这也不起作用。我尝试了相同代码的其他几个迭代,涉及“保留”和“就地”,但结果始终是与原始数据帧相同的数据帧。我缺少什么?我希望它删除前两行,因为它们是相同的。他们不是吗?或者我只是期待错误的事情......

最佳答案

您的数据框中没有逐行重复项。

根据the documentation ,重复项按行进行识别。

要删除 df['A'] == df['B'] 的行,您只需用 bool 数组进行掩码即可: df[df['A'] ! = df['B']]

df = pd.DataFrame({'A':['1', '2', '3'], 'B':['1', '2', '4']})

df[df.A != df.B]
# A B
# 3 4 

关于python - Pandas DataFrame.drop_duplicates() 缺少一些东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48505470/

相关文章:

python - 类型错误 : 'Food' object does not support indexing

python - 根据时间范围重新采样数据帧,忽略日期

python - 运行时错误: Found dtype Long but expected Float when fine-tuning using Trainer API

python - Django Nginx 不提供 wagtail 管理 css/js 文件

python-3.x - 选择 DataFrame 中的元素

Python-Nmap.0.3.4安装失败

python - 如何覆盖 Django 中父类(super class)模型字段的详细名称

python - 检查 num 是否可以除以 1(不是 1.9、2.5,而是 1.0、6.0)

python - 在 Pandas 中转置列和排名值

python-3.x - 根据现有列中的唯一文本值创建新的 Z-Score 列