当前位置:首页 > 行业动态 > 正文

python中isin用法

Python中的isin()方法用于筛选出列表中存在于指定集合中的元素。

在Python的Pandas库中,isin()是一个非常实用的函数,主要用于筛选数据,这个函数可以检查DataFrame或Series对象中的值是否包含在给定的值序列中。

基本用法

isin()函数的基本用法非常简单,它接收一个列表作为参数,然后返回一个布尔型的DataFrame或Series,其中的每个元素都表示原始DataFrame或Series中的相应元素是否在给定的列表中。

假设我们有一个包含多个城市名称的DataFrame:

import pandas as pd
data = {'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix']}
df = pd.DataFrame(data) 

如果我们想要找出在这个DataFrame中哪些城市是在美国的前五大城市(按照人口排序),我们可以使用isin()函数:

top_five_cities = ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix']
result = df['City'].isin(top_five_cities) 

在这个例子中,result将是一个布尔型的Series,表示每个城市是否在前五大城市中。

高级用法

除了基本用法之外,isin()函数还有一些高级用法。

1. 使用字典进行筛选

如果你有一个字典,其中键是列名,值是要检查的值的列表,你也可以使用isin()函数。

data = {'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix'],
        'State': ['New York', 'California', 'Illinois', 'Texas', 'Arizona']}
df = pd.DataFrame(data)
criteria = {'City': ['New York', 'Los Angeles'], 'State': ['Texas']}
result = df.isin(criteria) 

在这个例子中,result将是一个布尔型的DataFrame,表示每行中的每个元素是否在相应的列表中。

2. 使用正则表达式进行筛选

isin()函数还支持使用正则表达式进行筛选,你只需要将正则表达式作为字符串传递给isin()函数即可。

如果我们想要找出所有以"N"开头的城市,我们可以这样做:

pattern = '^N'
result = df['City'].str.contains(pattern) 

在这个例子中,result将是一个布尔型的Series,表示每个城市的名称是否匹配给定的正则表达式。

相关问题与解答

问题1:isin()函数返回的是什么类型的对象?

答:isin()函数返回的是一个布尔型的DataFrame或Series,其中的每个元素都表示原始DataFrame或Series中的相应元素是否在给定的列表中。

问题2:如何使用isin()函数来筛选出DataFrame中的特定行?

答:你可以先使用isin()函数生成一个布尔型的DataFrame,然后使用这个DataFrame来筛选原始的DataFrame。df[df['City'].isin(top_five_cities)]将返回一个新的DataFrame,其中只包含前五大城市。

问题3:isin()函数是否可以接受字典作为参数?如果可以,如何使用?

答:是的,isin()函数可以接受一个字典作为参数,字典的键应该是列名,值应该是要检查的值的列表。df.isin({'City': ['New York', 'Los Angeles'], 'State': ['Texas']})将返回一个布尔型的DataFrame,表示每行中的每个元素是否在相应的列表中。

问题4:isin()函数是否可以使用正则表达式进行筛选?如果可以,如何使用?

答:是的,isin()函数可以使用正则表达式进行筛选,你只需要将正则表达式作为字符串传递给isin()函数即可。df['City'].str.contains('^N')将返回一个布尔型的Series,表示每个城市的名称是否匹配给定的正则表达式。

0