在Pandas中,可以使用变量来过滤DataFrame中的行。过滤DataFrame行的常用方法有两种:使用布尔索引和使用query()方法。
使用布尔索引的方式可以根据条件对DataFrame进行筛选。首先,我们需要创建一个布尔条件,即一个包含True和False的布尔Series,其长度与DataFrame的行数相同。然后,将该布尔Series作为索引传递给DataFrame,即可得到符合条件的行。
以下是一个示例代码,用于过滤出DataFrame中'temperature'列大于等于30度的行:
import pandas as pd
# 创建一个示例DataFrame
data = {'city': ['Beijing', 'Shanghai', 'Guangzhou'],
'temperature': [32, 31, 28]}
df = pd.DataFrame(data)
# 使用布尔索引过滤行
condition = df['temperature'] >= 30
filtered_df = df[condition]
print(filtered_df)
输出结果为:
city temperature
0 Beijing 32
1 Shanghai 31
另一种过滤DataFrame行的方法是使用query()方法。query()方法接受一个字符串参数,该字符串包含一个布尔表达式,用于筛选DataFrame的行。布尔表达式中可以使用变量来代表列名。
以下是使用query()方法进行过滤的示例代码:
import pandas as pd
# 创建一个示例DataFrame
data = {'city': ['Beijing', 'Shanghai', 'Guangzhou'],
'temperature': [32, 31, 28]}
df = pd.DataFrame(data)
# 使用query()方法过滤行
temperature_threshold = 30
filtered_df = df.query("temperature >= @temperature_threshold")
print(filtered_df)
输出结果与前面的示例相同。
以上是使用变量过滤Pandas数据帧中的行的方法。根据具体需求,可以选择使用布尔索引或query()方法进行行过滤。
领取专属 10元无门槛券
手把手带您无忧上云