📅  最后修改于: 2023-12-03 14:45:04.117000             🧑  作者: Mango
Pandas 是一个重要的 Python 数据处理库,它支持广泛的字符串处理功能。本文将介绍如何使用 Pandas 处理数据框(Data Frame)中的字符串。
split() 函数用于拆分字符串。下面的示例将字符串 'Hello World' 拆分成两个元素 ‘Hello’ 和 ‘ World’。
import pandas as pd
data = {'name':['John Doe', 'Jane Smith', 'Bob Johnson'],
'age':[32, 27, 45],
'city':['New York, NY', 'Los Angeles, CA', 'Chicago, IL']}
df = pd.DataFrame(data)
df['first_name'], df['last_name'] = df['name'].str.split(' ', 1).str
df
这将生成一个新的数据框,其中包含两个新列 first_name 和 last_name:
Name Age City first_name last_name
John Doe 32 New York, NY John Doe
Jane Smith 27 Los Angeles, CA Jane Smith
Bob Johnson 45 Chicago, IL Bob Johnson
strip() 函数用于删除字符串前后的空格。在下面的示例中,使用 strip() 函数删除 city 列中城市名称左右的空格。
df['city'] = df['city'].str.strip()
df
这将生成一个新的数据帧,其中城市名称两侧的空格已被删除:
Name Age City
John Doe 32 New York, NY
Jane Smith 27 Los Angeles, CA
Bob Johnson 45 Chicago, IL
replace() 函数用于替换字符串中的子字符串。在下面的示例中,使用 replace() 函数将 city 列中的 'NY' 替换为 'New York'。
df['city'] = df['city'].str.replace('NY', 'New York')
df
这将生成一个新的数据帧,其中 'NY' 替换为了 'New York':
Name Age City
John Doe 32 New York, New York
Jane Smith 27 Los Angeles, CA
Bob Johnson 45 Chicago, IL
使用正则表达式,可实现更灵活的字符串处理和匹配。
contains() 函数用于检查字符串是否包含特定的模式。在下面的示例中,使用 contains() 函数查找城市名称中包含 'New' 的行。
new_cities = df.loc[df['city'].str.contains('New')]
new_cities
这将生成一个新数据帧,其中包含 city 列包含 'New' 的所有行:
Name Age City
John Doe 32 New York, NY
extract() 函数用于从字符串中提取匹配的子字符串。在下面的示例中,使用 extract() 函数从 city 列中提取州名缩写。
df['state'] = df['city'].str.extract(r',\s*([A-Z]{2})\s*', expand=False)
df
这将生成一个新的数据帧,其中包含省份缩写的新列 state:
Name Age City state
John Doe 32 New York, NY NY
Jane Smith 27 Los Angeles, CA CA
Bob Johnson 45 Chicago, IL IL
Pandas 提供了广泛的字符串处理功能,包括拆分、删除空格、替换和正则表达式匹配。这些功能使得数据框的字符串处理变得更加简单和高效。