📜  Pandas DataFrame 中的字符串操作(1)

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

Pandas DataFrame 中的字符串操作

Pandas 是一个强大的 Python 库,支持大量的数据操作和分析。其中一个特性是 DataFrame,它是一个用于处理表格数据的数据结构。在 DataFrame 中,我们经常需要对字符串进行操作。Pandas 提供了很多字符串操作方法,让我们快速高效地对字符串进行操作。

字符串函数

Pandas 中有很多字符串函数,它们可以对字符串进行各种各样的操作,例如拆分、替换、提取、比较等等。下面是一些常用的字符串函数:

1. str.split()

用于将字符串按照指定的分隔符拆分成一个列表。

import pandas as pd

df = pd.DataFrame({
    'name': ['Tom', 'Jerry', 'Alice'],
    'age': [18, 21, 22],
    'address': ['Beijing', 'Shanghai', 'Guangzhou']
})
df['city'] = df['address'].str.split(' ').str[0]
print(df)

输出:

     name  age    address      city
0     Tom   18    Beijing   Beijing
1   Jerry   21   Shanghai  Shanghai
2   Alice   22  Guangzhou  Guangzhou
2. str.replace()

用于将字符串中的指定子串替换为另一个字符串。

df['address'] = df['address'].str.replace(' ', '-')
print(df)

输出:

     name  age        address      city
0     Tom   18    Beijing      Beijing
1   Jerry   21   Shanghai     Shanghai
2   Alice   22  Guangzhou    Guangzhou
3. str.extract()

用于从字符串中提取匹配指定正则表达式的子串。

df['province'] = df['address'].str.extract('(\w+)\s', expand=False)
print(df)

输出:

     name  age        address      city  province
0     Tom   18    Beijing      Beijing   Beijing
1   Jerry   21   Shanghai     Shanghai   Shanghai
2   Alice   22  Guangzhou    Guangzhou  Guangzhou
4. str.contains()

用于判断字符串中是否包含指定子串。

df['is_beijing'] = df['address'].str.contains('Beijing')
print(df)

输出:

     name  age        address      city  province  is_beijing
0     Tom   18    Beijing      Beijing   Beijing        True
1   Jerry   21   Shanghai     Shanghai   Shanghai       False
2   Alice   22  Guangzhou    Guangzhou  Guangzhou       False

对于以上这些字符串函数,它们返回的都是一个 Series 对象,可以直接赋值给 DataFrame 中的一个列,或作为 DataFrame 的一列。

字符串属性

除了字符串函数,Pandas 中还有一些字符串属性,它们可以用来获取字符串的一些属性,例如长度、大小写等等。下面是一些常用的字符串属性:

1. str.len()

用于获取字符串的长度。

df['address_len'] = df['address'].str.len()
print(df)

输出:

     name  age        address      city  province  is_beijing  address_len
0     Tom   18    Beijing      Beijing   Beijing        True           9
1   Jerry   21   Shanghai     Shanghai   Shanghai       False          10
2   Alice   22  Guangzhou    Guangzhou  Guangzhou       False           9
2. str.upper(), str.lower()

分别用于将字符串转换为大写和小写。

df['address_upper'] = df['address'].str.upper()
df['address_lower'] = df['address'].str.lower()
print(df)

输出:

     name  age        address      city  province  is_beijing  address_len  \
0     Tom   18    Beijing      Beijing   Beijing        True           9   
1   Jerry   21   Shanghai     Shanghai   Shanghai       False          10   
2   Alice   22  Guangzhou    Guangzhou  Guangzhou       False           9   

  address_upper address_lower  
0     BEIJING        beijing     
1     SHANGHAI       shanghai    
2     GUANGZHOU      guangzhou   

除了这些常用的字符串函数和属性,Pandas 中还有很多其他的字符串函数和属性,可以根据不同的需求进行选择使用。