Pandas 中文手册

6.3 读取文本文件(TXT)

Pandas中文学习手册:轻松读取文本文件(TXT)基础与高级技巧

Pandas 中文手册

本章详细讲解Pandas中读取文本文件(TXT)的方法,包括基础函数pd.read_table和pd.read_csv,分隔符配置技巧,以及如何处理无表头和固定宽度文件,适合数据分析初学者快速上手。

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

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

了解更多

读取文本文件(TXT)在Pandas中的应用

在数据分析工作中,我们经常需要从文本文件(如TXT文件)中导入数据。Pandas作为Python中强大的数据分析库,提供了多种读取文本文件的函数,让数据导入变得简单高效。本章将带你从基础开始,学习如何使用Pandas读取文本文件,包括常见场景如分隔符配置、无表头文件处理,以及固定宽度文件的读取。

1. 基础读取方法:pd.read_table 和 pd.read_csv

pd.read_table()

pd.read_table() 是读取表格数据的通用函数,默认使用制表符(\t)作为分隔符。它适用于各种分隔符格式的文本文件。

示例代码:

import pandas as pd

# 读取以制表符分隔的TXT文件
data = pd.read_table('data.txt')  # 默认分隔符是制表符
print(data.head())  # 查看前几行数据

pd.read_csv()

pd.read_csv() 专门用于读取逗号分隔值(CSV)文件,但也可以通过参数配置处理其他分隔符。默认分隔符是逗号(,)。

示例代码:

# 读取CSV文件
data = pd.read_csv('data.csv')  # 默认分隔符是逗号
print(data.head())

小提示: 在实际使用中,pd.read_table()pd.read_csv() 功能相似,主要区别在于默认分隔符。你可以根据需要选择,并通过 sep 参数调整分隔符。

2. 分隔符配置(sep参数)

文本文件可能使用不同分隔符,如逗号、制表符、空格或自定义符号(如分号、冒号)。使用 sep 参数来指定分隔符,确保数据正确解析。

示例代码:

# 读取以分号分隔的文件
data = pd.read_csv('data_semicolon.txt', sep=';')
print(data.head())

# 读取以空格分隔的文件(单个空格)
data = pd.read_table('data_space.txt', sep=' ')
print(data.head())

# 读取以多个空格分隔的文件(使用正则表达式)
data = pd.read_table('data_multi_space.txt', sep='\s+')
print(data.head())

常见分隔符设置:

  • 逗号:sep=','
  • 制表符:sep='\t'
  • 空格:sep=' '(单个空格)或 sep='\s+'(多个空格)
  • 自定义符号:如 sep=';'sep=':'

3. 读取无表头的文本文件

如果文本文件没有表头(即第一行直接是数据,而不是列名),可以使用 header=None 参数。Pandas会分配默认列名(如0, 1, 2等),你也可以通过 names 参数指定自定义列名。

示例代码:

# 读取无表头文件,使用默认列名
data = pd.read_table('data_no_header.txt', header=None)
print(data.head())

# 指定列名
data_with_names = pd.read_table('data_no_header.txt', header=None, names=['姓名', '年龄', '城市'])
print(data_with_names.head())

好处: 这样可以让数据更易读,便于后续分析。

4. 读取固定宽度的文本文件

固定宽度文件是指每列数据有固定的字符数,没有明确的分隔符。对于这类文件,可以使用 pd.read_fwf() 函数,它是专门设计用于读取固定宽度文件的。

示例代码:

# 读取固定宽度文件,指定每列的起始和结束位置
data = pd.read_fwf('data_fixed_width.txt', colspecs=[(0, 10), (11, 20), (21, 30)])  # 假设第一列0-9字符,第二列11-19字符,第三列21-29字符
print(data.head())

替代方法: 如果你习惯用 pd.read_table(),某些版本支持 widths 参数,但 pd.read_fwf() 更直接且功能强大。

5. 注意事项与常见问题

  • 编码问题: 如果文件包含中文字符或其他非ASCII字符,使用 encoding 参数指定编码,例如 encoding='utf-8'

    data = pd.read_csv('data_chinese.txt', encoding='utf-8')
    
  • 大文件处理: 对于大型文件,可以使用 chunksize 参数分块读取,避免内存溢出。

    for chunk in pd.read_csv('large_data.txt', chunksize=1000):
        # 处理每个块
        print(chunk.head())
    
  • 错误处理: 如果分隔符设置错误,可能导致数据解析失败。检查文件格式并使用正确的 sep 参数。

总结

通过本章学习,你应该掌握了使用Pandas读取文本文件的核心技巧:

  1. 基础使用 pd.read_table()pd.read_csv()
  2. 通过 sep 参数适配不同分隔符格式。
  3. 处理无表头文件,使用 header=Nonenames 参数。
  4. 读取固定宽度文件,使用 pd.read_fwf()

建议多练习这些方法,结合实际数据文件,加深理解。在后续章节中,我们将继续探索Pandas的其他高级功能。

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

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

获取工具包