【问题标题】:How to get a list of duplicate values from 2 columns in csv with pandas如何使用熊猫从csv中的2列中获取重复值列表
【发布时间】:2019-10-23 15:44:07
【问题描述】:

我是 pandas 的新手,我正在尝试从 CSV 文件的 2 列中获取重复值列表,我的数据框如下所示:

df = pd.read_csv('file.csv')
PID1    PID2
1       2
2       3
3       3
4       4
5       6
6       7
7       8
7       9
7       9

我试过用这个:

df.drop_duplicates('PID1', 'PID2', inplace=True)
print(df)

但我认为它不适用于 2 列。

预期的输出将是在我的 CSV 文件中添加一个标题为“重复项”的新列,并添加两列中的所有重复项,或者是一个包含所有重复值的简单列表。

Duplicates
2
3
4
6
7

【问题讨论】:

  • 你想要df['PID2'].drop_duplicates() 吗?
  • 嗨@jezrael,我已经更新了我的问题。我想检查 PID1 中的值是否存在于 PID2 中。因此,由于 1 仅存在于 PID1 中,因此它不是重复的。由于 4 存在于 PID1 和 PID2 中,因此它是重复的。由于 9 在 PID2 中只存在两次,因此它不是重复的。
  • 将多列作为序列传递,即列表或元组df.drop_duplicates(subset = ['PID1', 'PID2'], inplace=True)
  • 是的,答案已编辑。现在很清楚了。

标签: python pandas csv


【解决方案1】:

使用Series.isinDataFrame.loc 进行过滤,然后使用Series.drop_duplicates

s = df.loc[df['PID1'].isin(df['PID2']), 'PID1'].drop_duplicates()
print (s)
1    2
2    3
3    4
5    6
6    7
Name: PID1, dtype: int64

【讨论】:

    猜你喜欢
    • 2020-12-10
    • 2021-10-22
    • 1970-01-01
    • 1970-01-01
    • 2017-11-03
    • 1970-01-01
    • 2022-01-25
    • 2019-09-24
    • 2022-01-11
    相关资源
    最近更新 更多