📜  Pandas 数据帧中的字符串处理(1)

📅  最后修改于: 2023-12-03 14:45:04.117000             🧑  作者: Mango

Pandas 数据框中的字符串处理

Pandas 是一个重要的 Python 数据处理库,它支持广泛的字符串处理功能。本文将介绍如何使用 Pandas 处理数据框(Data Frame)中的字符串。

基本方法
split() 函数

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() 函数用于删除字符串前后的空格。在下面的示例中,使用 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() 函数用于替换字符串中的子字符串。在下面的示例中,使用 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() 函数用于检查字符串是否包含特定的模式。在下面的示例中,使用 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() 函数用于从字符串中提取匹配的子字符串。在下面的示例中,使用 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 提供了广泛的字符串处理功能,包括拆分、删除空格、替换和正则表达式匹配。这些功能使得数据框的字符串处理变得更加简单和高效。