在Python pandas中,有多种方法可以用于筛选数据,其中包括使用布尔索引、使用.loc[]和.iloc[]运算符、使用.query()方法、使用isin()方法等。我们一起来看看一些demo,为以后自动化分析Excel打下基础呀。
- 布尔索引
使用布尔索引可以根据一些条件筛选数据。例如,我们可以通过以下方式找到“age”列中大于25岁的所有行:
import pandas as pd
# 创建数据集
data = {'name': ['Tom', 'Jerry', 'Mickey', 'Minnie'],
'age': [25, 30, 22, 27],
'gender': ['M', 'M', 'M', 'F']}
df = pd.DataFrame(data)
# 用布尔索引筛选数据
df[df['age'] > 25]
运行结果如下所示呀。
- .loc[]和.iloc[]运算符
.loc[]和.iloc[]运算符也可以用于筛选数据。其中.loc[]是通过行和列的标签进行筛选,而.iloc[]则是通过行和列的位置进行筛选。例如,我们可以通过以下方式找到第一行和第二列的值:
import pandas as pd
# 创建数据集
data = {'name': ['Tom', 'Jerry', 'Mickey', 'Minnie'],
'age': [25, 30, 22, 27],
'gender': ['M', 'M', 'M', 'F']}
df = pd.DataFrame(data)
# 使用.loc[]和.iloc[]运算符筛选数据
df.loc[0, 'age']
df.iloc[0, 1]
运行结果如下所示呀。
- .query()方法
.query()方法可以使用类似SQL的语法来筛选数据。例如,我们可以通过以下方式找到“age”列中大于25岁的所有行:
import pandas as pd
# 创建数据集
data = {'name': ['Tom', 'Jerry', 'Mickey', 'Minnie'],
'age': [25, 30, 22, 27],
'gender': ['M', 'M', 'M', 'F']}
df = pd.DataFrame(data)
# 使用.query()方法筛选数据
df.query('age > 25')
运行结果如下所示呀。
- .isin()方法
.isin()方法可以用于筛选某一列中包含特定值的所有行。例如,我们可以通过以下方式找到“gender”列中包含“M”和“F”的所有行:
import pandas as pd
# 创建数据集
data = {'name': ['Tom', 'Jerry', 'Mickey', 'Minnie'],
'age': [25, 30, 22, 27],
'gender': ['M', 'M', 'M', 'F']}
df = pd.DataFrame(data)
# 使用.isin()方法筛选数据
df[df['gender'].isin(['M', 'F'])]
运行结果如下所示呀。
以上就是几种在pandas中筛选数据的方法。