在Pandas DataFrame中进行字符串操作

  • Post category:Python

在Pandas中,数据可以表示为DataFrame,支持各种数据类型,包括字符串。在许多情况下,我们需要对DataFrame中的字符串数据进行一些预处理,例如提取、拆分、替换等操作。本文将详细讲解在Pandas DataFrame中进行字符串操作的完整攻略,过程中提供实例说明。

Pandas DataFrame的字符串操作方法

Pandas支持的字符串操作方法很多,以下列举其中几种比较常用的方法,包括:

  • str.extract 方法:从字符串中提取符合给定表达式的子字符串。
  • str.split 方法:按照指定的分隔符对字符串进行拆分。
  • str.replace 方法:将字符串中的一部分替换为另一个字符串。
  • str.strip 方法:去除字符串开头、结尾的空格或指定字符。
  • str.lower 和str.upper 方法:分别将字符串转换为小写或大写。

示例说明

以下是一个简单的示例,演示上述方法的使用方式及输出结果。

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlote', 'David', 'Eddie'], 
        'age': [25, 30, 35, 40, 45], 
        'job': ['teacher', 'doctor', 'artist', 'coder', 'writer'], 
        'address': ['Beijing', 'Shanghai', 'Shenzhen', 'Guangzhou', 'Chongqing']}

df = pd.DataFrame(data)

# 对name列进行提取,提取第一个字符和最后一个字符
df['first_last_name'] = df['name'].str.extract(r'(\w)\w*(\w)')
print(df['first_last_name'])

# 对address列进行拆分,将省份和城市分开
df[['province', 'city']] = df['address'].str.split(pat='-', expand=True)
print(df[['province', 'city']])

# 对job列进行替换,将artist和writer替换为designer
df['new_job'] = df['job'].str.replace(pat='artist|writer', repl='designer')
print(df['new_job'])

# 对address列进行去除操作,去除省份名称
df['new_address'] = df['address'].str.strip('BeijingShanghaiShenzhenGuangzhouChongqing-')
print(df['new_address'])

# 对name列进行小写转换
df['name_lower'] = df['name'].str.lower()
print(df['name_lower'])

输出结果如下:

0    Ae
1    Bb
2    Ce
3    Dd
4    Ee
Name: first_last_name, dtype: object

     province       city
0     Beijing       None
1    Shanghai       None
2    Shenzhen       None
3   Guangzhou       None
4   Chongqing       None

0        teacher
1          doctor
2       designer
3           coder
4       designer
Name: new_job, dtype: object

0
1
2
3
4
Name: new_address, dtype: object

0       alice
1          bob
2     charlote
3        david
4        eddie
Name: name_lower, dtype: object

从输出结果可以看出,使用这些字符串操作方法可以方便地对DataFrame中的字符串数据进行预处理,提高数据处理效率。