Pandas 中文手册

7.3 保存为其他常见格式

Pandas DataFrame保存为多种格式的完全指南:从TXT到Parquet

Pandas 中文手册

本章节详细讲解如何将Pandas DataFrame保存为TXT、CSV、JSON、Pickle、Parquet和Feather等多种常见格式,包括方法详解、参数配置、代码示例和适用场景,帮助新手快速掌握数据存储技巧。

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

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

了解更多

Pandas DataFrame保存为其他常见格式

引言

在数据分析和处理过程中,经常需要将Pandas DataFrame保存到文件以便后续使用或分享。本章节将介绍如何将DataFrame保存为多种常见格式,包括TXT、CSV、JSON、Pickle、Parquet和Feather,每个部分都包含简单易懂的示例和解释。

1. 保存为TXT文件

使用df.to_string()方法

df.to_string()将DataFrame转换为字符串表示,可以直接写入TXT文件。适用于小型数据的快速查看。

示例代码:

import pandas as pd

# 创建一个示例DataFrame
df = pd.DataFrame({'A': [1, 2, 3], 'B': ['a', 'b', 'c']})

# 使用to_string保存为TXT文件
with open('data.txt', 'w', encoding='utf-8') as f:
    f.write(df.to_string())

使用df.to_csv()方法保存为TXT

虽然to_csv默认保存为CSV格式,但可以通过设置分隔符和文件扩展名来模拟TXT文件。

示例代码:

df.to_csv('data.txt', sep='\t', index=False)  # 使用制表符分隔,适合纯文本

2. 保存为JSON文件

使用df.to_json()方法

JSON(JavaScript Object Notation)是一种轻量级数据交换格式,便于Web应用读取。Pandas的to_json方法允许灵活配置输出结构。

orient参数配置:

  • 'split':将DataFrame拆分为列、索引和数据部分。
  • 'records':每行作为一个JSON对象。
  • 'index':以索引为键的行字典。
  • 'columns':以列为键的列字典(默认)。
  • 'values':仅输出数据值数组。
  • 'table':遵循Table Schema标准。

示例代码:

# 默认orient='columns'
json_str = df.to_json('data.json', orient='columns', indent=4)  # 美化输出

# 使用orient='records'保存每行数据
json_str = df.to_json('data_records.json', orient='records')

3. 保存为Pickle文件

使用df.to_pickle()方法

Pickle是Python的序列化模块,to_pickle可以将DataFrame高效保存为二进制文件,适合存储复杂Python对象,但仅限于Python环境使用。

高效序列化优势:

  • 快速读写,适合临时存储或缓存。
  • 保留数据类型和结构。
  • 注意:Pickle文件可能不安全,避免加载不受信任的源。

示例代码:

df.to_pickle('data.pkl')  # 保存为Pickle文件

# 读取时使用pd.read_pickle('data.pkl')

4. 保存为Parquet和Feather文件

适合大数据量

Parquet和Feather是专门为大数据设计的列式存储格式,提供高效的压缩和快速读取。

安装依赖: 使用前需要安装相应库:pip install pyarrow(Parquet和Feather)或pip install fastparquet(Parquet)。

保存为Parquet文件

Parquet格式适合跨平台大数据处理,与Hadoop生态系统兼容。

示例代码:

df.to_parquet('data.parquet', engine='pyarrow')  # 使用pyarrow引擎

保存为Feather文件

Feather由R和Python社区开发,读写速度极快,适合内存中的大数据集。

示例代码:

df.to_feather('data.feather')  # 直接保存

总结与最佳实践

  • TXT/CSV:适合简单文本交换,但可能丢失数据类型。
  • JSON:便于Web应用和人类可读,但文件较大时效率较低。
  • Pickle:适合Python内部使用,高效但不可跨语言。
  • Parquet/Feather:适合大数据场景,提供高性能和压缩。

根据需求选择格式:小数据用CSV或JSON,临时缓存用Pickle,大数据分析用Parquet或Feather。实践中,结合文件大小、读取速度和兼容性做决策。

希望本章节能帮助您掌握Pandas DataFrame的保存技巧,轻松应对各种数据存储需求!

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

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

获取工具包