pandas isin函数
在数据处理和分析中,我们经常会遇到需要判断某个数据是否在另一个数据集中的情况。为了方便地实现这一功能,pandas 提供了isin
函数,可以快速判断 Series 或 DataFrame 中的元素是否包含在另一个数据结构中。
pandas isin函数的基本用法
isin
函数的基本语法如下:
pandas.DataFrame.isin(values)
pandas.Series.isin(values)
其中,values
可以是列表、元组、字典、Series 或 DataFrame,用来指定需要匹配的数据。isin
函数会返回一个布尔类型的 Series 或 DataFrame,表明每个元素是否在values
中出现。
让我们来看一个示例:
import pandas as pd
data = {'A': [1, 2, 3, 4, 5],
'B': ['apple', 'banana', 'orange', 'grape', 'watermelon']}
df = pd.DataFrame(data)
fruits = ['apple', 'banana', 'grape']
df['B'].isin(fruits)
运行以上代码,可以得到如下输出:
0 True
1 True
2 False
3 True
4 False
Name: B, dtype: bool
以上代码中,我们创建了一个DataFrame,并定义了一个包含水果名称的列表fruits
。然后我们对 DataFrame 中 ‘B’ 列的元素使用isin
函数,返回了一个布尔类型的 Series,指示每个元素是否在fruits
中。
使用isin函数进行数据过滤
isin
函数在数据过滤中非常实用。通过将isin
函数的返回结果作为过滤条件,我们可以只保留包含特定元素的行。让我们看一个示例:
import pandas as pd
data = {'A': [1, 2, 3, 4, 5],
'B': ['apple', 'banana', 'orange', 'grape', 'watermelon']}
df = pd.DataFrame(data)
fruits = ['apple', 'banana', 'grape']
filtered_df = df[df['B'].isin(fruits)]
filtered_df
以上示例中,我们使用isin
函数筛选出了 B
列包含在fruits
列表中的行,得到了新的 DataFrame filtered_df
。运行以上代码,可以看到输出如下:
A B
0 1 apple
1 2 banana
3 4 grape
可以看到,数据已经成功被过滤,只保留了包含在fruits
列表中的行。
isin函数的更多用法
除了上述的基本用法和数据过滤,isin
函数还有一些其他用法:
- 在 DataFrame 中同时判断多列是否包含在给定数据中:
import pandas as pd
data = {'A': [1, 2, 3, 4, 5],
'B': ['apple', 'banana', 'orange', 'grape', 'watermelon'],
'C': [10, 20, 30, 40, 50]}
df = pd.DataFrame(data)
fruits = ['apple', 'banana']
numbers = [20, 30]
df.isin({'B': fruits, 'C': numbers})
- 判断 Series 中的元素是否在另一个 Series 中存在:
import pandas as pd
data1 = pd.Series(['apple', 'banana', 'orange', 'grape', 'watermelon'])
data2 = pd.Series(['apple', 'grape', 'watermelon'])
data1.isin(data2)
总结
本文介绍了 pandas 中的isin
函数的基本用法,包括如何判断数据是否在另一个数据集中以及如何进行数据过滤。通过isin
函数,我们可以快速、便利地实现数据匹配和筛选,提高数据处理效率。