PythonPandas:如何将字符串列表与 DataFrame 列匹配

作者:编程家 分类: regex 时间:2025-11-08

使用Python和Pandas处理数据是数据科学家和分析师的常见任务之一。在数据处理过程中,经常需要将字符串列表与DataFrame列进行匹配,以便根据特定的条件对数据进行筛选、过滤或者转换。在本文中,我们将探讨如何使用Python和Pandas来实现这一目标,并提供一些实际案例代码来帮助读者更好地理解。

什么是字符串列表与DataFrame列的匹配

在数据处理过程中,我们经常会遇到一种情况,即需要根据一个或多个字符串列表中的值来匹配DataFrame中的某一列。这种匹配可以用于多种目的,例如筛选出特定条件下的数据,对数据进行分类或者添加新的列等。

如何将字符串列表与DataFrame列进行匹配

Pandas提供了多种方法来实现字符串列表与DataFrame列的匹配。以下是其中一种常见的方法:

1. 使用`isin()`函数进行匹配:`isin()`函数可以用来检查某一列中的值是否存在于一个给定的字符串列表中。它返回一个布尔值的Series,表示每个值是否存在于列表中。我们可以使用这个Series来筛选数据或者创建新的列。

下面是一个简单的示例代码,演示了如何使用`isin()`函数进行匹配:

python

import pandas as pd

# 创建一个DataFrame

data = {'Name': ['Tom', 'Nick', 'John', 'Mike'],

'Age': [20, 25, 30, 35],

'City': ['New York', 'Paris', 'London', 'Tokyo']}

df = pd.DataFrame(data)

# 创建一个字符串列表

cities = ['Paris', 'London']

# 使用isin()函数进行匹配

filtered_df = df[df['City'].isin(cities)]

# 打印筛选后的DataFrame

print(filtered_df)

运行以上代码,输出结果为:

Name Age City

1 Nick 25 Paris

2 John 30 London

以上代码中,我们创建了一个包含姓名、年龄和城市的DataFrame。然后,我们创建了一个字符串列表`cities`,其中包含了我们想要匹配的城市。接下来,我们使用`isin()`函数来判断`City`列中的每个值是否存在于`cities`列表中,并将结果赋值给`filtered_df`。最后,我们打印了筛选后的DataFrame,只显示了匹配成功的行。

案例代码

下面是一个更复杂的案例代码,演示了如何使用字符串列表与DataFrame列进行匹配,并根据匹配结果创建新的列。

python

import pandas as pd

# 创建一个DataFrame

data = {'Name': ['Tom', 'Nick', 'John', 'Mike'],

'Age': [20, 25, 30, 35],

'City': ['New York', 'Paris', 'London', 'Tokyo']}

df = pd.DataFrame(data)

# 创建一个字符串列表

target_cities = ['Paris', 'London']

# 使用isin()函数进行匹配,并创建新的列

df['Target City'] = df['City'].isin(target_cities)

# 打印添加新列后的DataFrame

print(df)

运行以上代码,输出结果为:

Name Age City Target City

0 Tom 20 New York False

1 Nick 25 Paris True

2 John 30 London True

3 Mike 35 Tokyo False

以上代码中,我们创建了一个包含姓名、年龄和城市的DataFrame。然后,我们创建了一个字符串列表`target_cities`,其中包含了我们想要匹配的城市。接下来,我们使用`isin()`函数来判断`City`列中的每个值是否存在于`target_cities`列表中,并将结果赋值给新的列`Target City`。最后,我们打印了添加新列后的DataFrame,显示了每个城市是否匹配成功的结果。

在本文中,我们介绍了如何使用Python和Pandas将字符串列表与DataFrame列进行匹配。我们通过`isin()`函数演示了一种常见的匹配方法,并提供了相应的案例代码。通过掌握这些技巧,读者可以更好地处理和分析数据,从而更高效地进行数据科学和分析工作。

希望本文对读者有所帮助,谢谢阅读!