📌  相关文章
📜  pandas 检查一列中的任何值是否存在于另一列中 - Python (1)

📅  最后修改于: 2023-12-03 15:03:30.472000             🧑  作者: Mango

pandas检查一列中的任何值是否存在于另一列中

使用 pandas 库进行数据分析和数据处理时,经常需要对数据集中的不同列进行比对或筛选。本文将介绍如何利用 pandas 检查一列中的任何值是否存在于另一列中。

示例数据

假设现有一个示例数据集,包含两列数据:Col_ACol_B。其中 Col_A 包含一组字符串,Col_B 包含另一组字符串。

import pandas as pd

data = {'Col_A': ['apple', 'orange', 'banana', 'pear', 'peach'], 'Col_B': ['orange', 'pear', 'grape', 'peach']}
df = pd.DataFrame(data)
print(df)

# Output:

#     Col_A    Col_B
# 0   apple   orange
# 1  orange     pear
# 2  banana    grape
# 3    pear    peach
# 4   peach     None
检查单个值是否存在

pandas 中,可以通过以下方式检查某一列中是否存在某个值:

value = 'orange'
isin = df['Col_A'].isin([value]).any()
print(isin)

# Output:

# True

上述代码中,isin() 方法用于判断某个值是否存在于对应的列中,any() 方法用于判断是否有任何值为真。因此,上述代码输出 True,即 orange 存在于 Col_A 中。

检查多个值是否存在

如果需要同时检查某一列中的多个值是否存在,可以用类似以下方式:

values = ['orange', 'banana']
isin = df['Col_A'].isin(values).any()
print(isin)

# Output:

# True

上述代码中,isin() 方法的参数传入了一个字符串列表,用于判断任意一个字符串是否存在于 Col_A 中。由于两个字符串都存在于 Col_A 中,因此上述代码同样输出 True。

检查一列中的任何值是否存在于另一列中

接下来,我们将介绍如何检查一列中的任何值是否存在于另一列中。这个过程涉及到两个关键点:

  • 需要对两列数据同时进行遍历。
  • 需要判断任意一个值是否在另一列中出现。

为了实现这个功能,我们可以编写一个循环遍历 Col_A 中的每个值,并在每次遍历时检查该值是否出现在 Col_B 中:

isin_list = []
for value in df['Col_A']:
    isin = value in df['Col_B'].tolist()
    isin_list.append(isin)

df['Isin'] = isin_list
print(df)

# Output:

#     Col_A    Col_B   Isin
# 0   apple   orange  False
# 1  orange     pear   True
# 2  banana    grape  False
# 3    pear    peach  False
# 4   peach     None  False

通过循环遍历,我们将检查结果组成了一个列表 isin_list,并将其作为一个新列添加到了原始数据集 df 中。这个新列被命名为 Isin,其中 True 表示对应的 Col_A 中的值在 Col_B 中出现过,False 表示没有出现过。

总结

本文介绍了如何使用 pandas 检查一列中的任何值是否存在于另一列中。我们分别演示了如何检查单个值是否存在、检查多个值是否同时存在、检查任何一列中的值是否存在于另一列中。这些技巧可以帮助你在处理数据时更加灵活地进行筛选和过滤。