📅  最后修改于: 2023-12-03 15:18:14.101000             🧑  作者: Mango
在 Pandas 中,我们通常需要根据特定条件或标准来过滤数据集中的行。有时,我们需要根据一个列表中的值来过滤行。下面是如何使用 Pandas 进行行过滤的示例,该示例使用一个列表来查找含有特定值的行。
让我们先创建一个示例数据集进行演示。
import pandas as pd
data = {
'name': ['Alex', 'Bob', 'Charlie', 'Doug'],
'age': [25, 30, 29, 27],
'city': ['New York', 'Paris', 'London', 'Sydney']
}
df = pd.DataFrame(data)
print(df)
输出结果:
name age city
0 Alex 25 New York
1 Bob 30 Paris
2 Charlie 29 London
3 Doug 27 Sydney
假设我们有一个包含特定名字的列表,现在我们需要根据该列表中的值来过滤数据集。我们可以使用 Pandas 的 isin()
方法来实现该功能,具体代码如下:
names_to_filter = ['Alex', 'Charlie']
filtered_df = df[df['name'].isin(names_to_filter)]
print(filtered_df)
输出结果:
name age city
0 Alex 25 New York
2 Charlie 29 London
上述代码的第一行中,我们指定了一个包含要过滤的名字的列表 names_to_filter
。
然后,通过 df['name'].isin(names_to_filter)
,我们创建一个布尔(bool)Series,其中 True 表示数据集中该行的名字出现在 names_to_filter
列表中,False 表示不符合条件。我们将该 Series 应用到数据集 df
上,返回一个新的数据集变量 filtered_df
,其中仅包含条件为 True 的行。
最后,我们输出过滤后的数据集 filtered_df
,其中仅包含名字为 'Alex' 和 'Charlie' 的行。
在 Pandas 中,我们可以使用 isin()
方法根据一个列表中的值来过滤行。该方法返回一个使用 True 或 False 对行进行标记的 Series,然后我们可以使用布尔索引(Boolean Indexing)来选择符合条件的行。