Pandas 中文手册

11.2 字符串数据清洗(专项,实战高频)

Pandas字符串数据清洗实战:去空格、大小写转换与更多操作

Pandas 中文手册

本章节详细讲解Pandas中字符串数据清洗的常用方法,包括去空格、大小写转换、替换、分割、提取、判断和处理缺失字符串,适用于新手学习和实战应用。

推荐工具
PyCharm专业版开发必备

功能强大的Python IDE,提供智能代码补全、代码分析、调试和测试工具,提高Python开发效率。特别适合处理列表等数据结构的开发工作。

了解更多

Pandas字符串数据清洗实战指南

在数据分析和数据预处理中,字符串数据清洗是一项高频且重要的任务。Pandas库提供了强大的字符串处理方法,能够帮助我们高效地处理文本数据。本章节将详细介绍Pandas中常用的字符串清洗函数,并附上实战示例,适用于新人学习。

1. 字符串去空格

在字符串数据中,空格常常是隐藏的错误源,可能导致数据匹配失败。Pandas提供了str.strip()str.lstrip()str.rstrip()方法来去除空格。

  • str.strip():去除字符串两端的空格。
  • str.lstrip():去除字符串左端的空格。
  • str.rstrip():去除字符串右端的空格。

示例:

import pandas as pd

# 创建一个示例Series
s = pd.Series(['  hello  ', 'world ', '  foo'])
print("原始数据:")
print(s)

# 使用str.strip去除两端空格
s_stripped = s.str.strip()
print("去除两端空格后:")
print(s_stripped)

2. 字符串大小写转换

字符串大小写不一致会影响数据匹配和搜索。使用str.upper()str.lower()str.title()可以轻松转换大小写。

  • str.upper():将所有字符转换为大写。
  • str.lower():将所有字符转换为小写。
  • str.title():将每个单词的首字母大写。

示例:

s = pd.Series(['Hello World', 'data science', 'PANDAS'])
s_upper = s.str.upper()
s_lower = s.str.lower()
s_title = s.str.title()

print("大写转换:", s_upper)
print("小写转换:", s_lower)
print("标题转换:", s_title)

3. 字符串替换

替换字符串中的特定字符或子串是常见操作。str.replace()方法可以实现此功能,支持简单的替换操作。

示例:将空格替换为下划线。

s = pd.Series(['hello world', 'foo bar'])
s_replaced = s.str.replace(' ', '_')
print("替换后:", s_replaced)

4. 字符串分割

将字符串分割成列表,便于进一步处理。使用str.split()方法。

示例:按空格分割字符串。

s = pd.Series(['apple banana cherry', 'dog cat'])
s_split = s.str.split(' ')
print("分割后:", s_split)

5. 字符串提取

使用正则表达式从字符串中提取特定格式的内容。str.extract()方法非常有用,适用于提取数字、日期等信息。

示例:提取数字部分(使用正则表达式r'(\d+)')。

s = pd.Series(['ID123', 'Code456', '789XYZ'])
s_extracted = s.str.extract(r'(\d+)')
print("提取的数字:", s_extracted)

6. 字符串判断

判断字符串是否包含特定子串,或是否以某字符串开头或结尾。使用str.contains()str.startswith()str.endswith()方法。

示例:

s = pd.Series(['hello world', 'hello pandas', 'world'])
contains_hello = s.str.contains('hello')
starts_with_h = s.str.startswith('h')
ends_with_d = s.str.endswith('d')

print("包含'hello':", contains_hello)
print("以'h'开头:", starts_with_h)
print("以'd'结尾:", ends_with_d)

7. 缺失字符串处理

在数据中,缺失值可能用“未知”、“空”等字符串表示,需要将它们替换为标准的NaN值以便后续分析。

示例:将特定字符串替换为NaN。

s = pd.Series(['apple', '未知', '空', 'banana'])
s_replaced = s.replace(['未知', '空'], pd.NA)  # 可以根据需要改为pd.NaT或np.nan
print("处理缺失值后:", s_replaced)

总结

通过本章节的学习,您应该掌握了Pandas中字符串数据清洗的常用方法,包括去空格、大小写转换、替换、分割、提取、判断和处理缺失字符串。这些函数在实战中应用广泛,能够帮助您快速清洗和准备数据,提高数据分析效率。建议结合实际数据集多练习,加深理解。

开发工具推荐
Python开发者工具包

包含虚拟环境管理、代码格式化、依赖管理、测试框架等Python开发全流程工具,提高开发效率。特别适合处理复杂数据结构和算法。

获取工具包