pandas.DataFrame.isin() 方法用于检查 DataFrame 中的元素是否存在于指定的值集合中。它会返回一个布尔类型的 DataFrame,表示 DataFrame 中的每个元素是否包含在给定的列表、数组、或 Series 中。可以检查某列的数据是否在给定的类别列表中,还可以对比多个 DataFrame 或 Series 中的值。数据过滤时,结合 isin 和布尔索引,可以快速筛选出符合条件的行。本文主要介绍一下Pandas中pandas.DataFrame.isin方法的使用。

DataFrame.isin(self, values)                 [source]

DataFrame中的每个元素是否包含在值中。

参数:

values  iterable, Series, DataFramedict

如果所有标签都匹配,则结果仅在某个位置为true

如果valuesSeries,那就是索引。

如果 values是一个dict,则键必须是必须匹配的列名。

如果值是DataFrame,则索引标签和列标签都必须匹配。

返回值:

DataFrame

布尔值的DataFrame,

显示DataFrame中的每个元素是否包含在值中。

例子

1)检查 DataFrame 中的某些值

import pandas as pd

# 创建一个示例 DataFrame
data = {'A': [1, 2, 3, 4],
        'B': [5, 6, 7, 8]}
df = pd.DataFrame(data)

# 定义检查的值
values = [2, 4, 6, 8]

# 使用 isin 检查值是否在 DataFrame 中
result = df.isin(values)

print(result)

2)检查 DataFrame 中的列是否包含在不同的集合中

import pandas as pd

# 创建示例数据框
data = {'A': [1, 2, 3, 4], 'B': [4, 5, 6, 7]}
df = pd.DataFrame(data)

# 定义每列的检查值
values = {'A': [2, 4], 'B': [5, 7]}

# 使用 isin 检查每列的值是否在对应的集合中
result = df.isin(values)

print(result)

3)检查 Series 中的值

import pandas as pd

# 创建一个 Series
s = pd.Series([1, 2, 3, 4])

# 定义检查的值
values = [2, 4]

# 使用 isin 检查值是否在 Series 中
result = s.isin(values)

# 打印结果
print(result)

4)使用示例

import pandas as pd

# 创建 DataFrame
df = pd.DataFrame({'num_legs': [2, 4], 'num_wings': [2, 0]},
                  index=['falcon', 'dog'])

# 输出 DataFrame
print("DataFrame df:")
print(df)

# 使用字典,分别检查每列中的元素是否为指定的值
result_dict = df.isin({'num_wings': [0, 3]})
print("\n使用字典检查每列中的元素是否为指定的值 (num_wings 列检查 0 或 3):")
print(result_dict)

# 使用另一个 DataFrame 检查匹配的元素
other = pd.DataFrame({'num_legs': [8, 2], 'num_wings': [0, 2]},
                     index=['spider', 'falcon'])
print("\n另一个 DataFrame (other):")
print(other)

result_df = df.isin(other)
print("\n使用 DataFrame (other) 检查匹配的元素:")
print(result_df)

推荐文档

相关文档

大家感兴趣的内容

随机列表