2.2 输出数据


文档摘要

2.2 输出数据 2.2 Pandas 数据输出详解 2.2.1 输出到 CSV 文件 CSV (Comma Separated Values) 是一种常用的文本文件格式,用于存储表格数据。Pandas 提供了 方法将 DataFrame 或 Series 输出到 CSV 文件。 语法: 常用参数: : 文件路径或缓冲区。如果为 None,则返回字符串。 : 分隔符,默认为逗号 ( )。 : 用于表示缺失值的字符串,默认为空字符串 ( )。 : 浮点数的格式化字符串。 : 要写入的列的列表。 : 是否写入列名,默认为 True。 : 是否写入索引,默认为 True。 : 索引列的标签。 : 文件打开模式,默认为 (写入)。 : 文件编码,例如 。 : 压缩类型,例如 、 、 。

2.2 输出数据

2.2 Pandas 数据输出详解

2.2.1 输出到 CSV 文件

CSV (Comma Separated Values) 是一种常用的文本文件格式,用于存储表格数据。Pandas 提供了 to_csv() 方法将 DataFrame 或 Series 输出到 CSV 文件。

语法:

DataFrame.to_csv(path_or_buf=None, sep=',', na_rep='', float_format=None, columns=None, header=True, index=True, index_label=None, mode='w', encoding=None, compression='infer', quoting=None, quotechar='"', lineterminator=None, date_format=None, doublequote=True, escapechar=None, decimal='.', errors='strict', storage_options=None)

常用参数:

  • path_or_buf: 文件路径或缓冲区。如果为 None,则返回字符串。

  • sep: 分隔符,默认为逗号 (,)。

  • na_rep: 用于表示缺失值的字符串,默认为空字符串 ('')。

  • float_format: 浮点数的格式化字符串。

  • columns: 要写入的列的列表。

  • header: 是否写入列名,默认为 True。

  • index: 是否写入索引,默认为 True。

  • index_label: 索引列的标签。

  • mode: 文件打开模式,默认为 'w' (写入)。

  • encoding: 文件编码,例如 'utf-8'

  • compression: 压缩类型,例如 'gzip''bz2''xz'

代码示例:

import pandas as pd # 创建一个 DataFrame data = {'姓名': ['Alice', 'Bob', 'Charlie'], '年龄': [25, 30, 28], '城市': ['北京', '上海', '广州']} df = pd.DataFrame(data) # 输出到 CSV 文件 df.to_csv('output.csv', index=False, encoding='utf-8') # 输出到 CSV 文件,使用分号作为分隔符 df.to_csv('output_semicolon.csv', sep=';', index=False, encoding='utf-8') # 输出到 CSV 文件,只包含姓名和年龄两列 df.to_csv('output_selected_columns.csv', columns=['姓名', '年龄'], index=False, encoding='utf-8') # 输出到 CSV 文件,使用 gzip 压缩 df.to_csv('output_compressed.csv.gz', index=False, encoding='utf-8', compression='gzip')

代码解释:

  • 第一个示例将 DataFrame df 输出到名为 output.csv 的文件中,不包含索引列,并使用 UTF-8 编码。

  • 第二个示例使用分号 (;) 作为分隔符。

  • 第三个示例只输出了 姓名年龄 两列。

  • 第四个示例将文件压缩为 gzip 格式。

2.2.2 输出到 Excel 文件

Pandas 提供了 to_excel() 方法将 DataFrame 输出到 Excel 文件。需要安装 openpyxlxlsxwriter 库。

语法:

DataFrame.to_excel(excel_writer, sheet_name='Sheet1', na_rep='', float_format=None, columns=None, header=True, index=True, index_label=None, startrow=0, startcol=0, engine=None, merge_cells=True, encoding=None, inf_rep='inf', verbose=True, freeze_panes=None, storage_options=None)

常用参数:

  • excel_writer: 文件路径或 ExcelWriter 对象。

  • sheet_name: 工作表名称,默认为 'Sheet1'

  • na_rep: 用于表示缺失值的字符串,默认为空字符串 ('')。

  • float_format: 浮点数的格式化字符串。

  • columns: 要写入的列的列表。

  • header: 是否写入列名,默认为 True。

  • index: 是否写入索引,默认为 True。

  • index_label: 索引列的标签。

  • startrow: 起始行,默认为 0。

  • startcol: 起始列,默认为 0。

  • engine: 使用的引擎,可以是 'openpyxl''xlsxwriter'

代码示例:

import pandas as pd # 创建一个 DataFrame data = {'姓名': ['Alice', 'Bob', 'Charlie'], '年龄': [25, 30, 28], '城市': ['北京', '上海', '广州']} df = pd.DataFrame(data) # 输出到 Excel 文件 df.to_excel('output.xlsx', sheet_name='人员信息', index=False) # 输出到 Excel 文件,指定起始行和起始列 df.to_excel('output_position.xlsx', sheet_name='人员信息', index=False, startrow=2, startcol=1) # 使用 ExcelWriter 对象输出到多个工作表 with pd.ExcelWriter('output_multiple_sheets.xlsx') as writer: df.to_excel(writer, sheet_name='人员信息', index=False) df.describe().to_excel(writer, sheet_name='统计信息')

代码解释:

  • 第一个示例将 DataFrame df 输出到名为 output.xlsx 的文件中,工作表名称为 '人员信息',不包含索引列。

  • 第二个示例指定了起始行和起始列,数据将从第 3 行第 2 列开始写入。

  • 第三个示例使用 ExcelWriter 对象将多个 DataFrame 输出到同一个 Excel 文件的不同工作表中。

2.2.3 输出到 JSON 文件

Pandas 提供了 to_json() 方法将 DataFrame 或 Series 输出到 JSON (JavaScript Object Notation) 文件。

语法:

DataFrame.to_json(path_or_buf=None, orient=None, date_format=None, double_precision=10, force_ascii=True, date_unit='ms', default_handler=None, lines=False, compression='infer', index=True, indent=None, storage_options=None)

常用参数:

  • path_or_buf: 文件路径或缓冲区。如果为 None,则返回字符串。

  • orient: JSON 字符串的格式,可以是 'split''records''index''columns''values''table'

  • date_format: 日期格式,可以是 'epoch' (Unix 时间戳) 或 'iso' (ISO 8601 格式)。

  • date_unit: 时间戳的单位,可以是 's''ms''us''ns'

  • lines: 是否将每行数据作为独立的 JSON 对象输出,默认为 False。

  • indent: 缩进空格数。

代码示例:

import pandas as pd # 创建一个 DataFrame data = {'姓名': ['Alice', 'Bob', 'Charlie'], '年龄': [25, 30, 28], '城市': ['北京', '上海', '广州']} df = pd.DataFrame(data) # 输出到 JSON 文件,使用 records 格式 df.to_json('output.json', orient='records', force_ascii=False) # 输出到 JSON 文件,使用 index 格式,并添加缩进 df.to_json('output_index.json', orient='index', indent=4, force_ascii=False) # 输出到 JSON 文件,每行作为一个 JSON 对象 df.to_json('output_lines.json', orient='records', lines=True, force_ascii=False)

代码解释:

  • 第一个示例将 DataFrame df 输出到名为 output.json 的文件中,使用 'records' 格式,即将每行数据作为一个 JSON 对象。force_ascii=False 保证中文不被转义。

  • 第二个示例使用 'index' 格式,并将索引作为 JSON 对象的键,添加了 4 个空格的缩进。

  • 第三个示例使用 'records' 格式,并将 lines 参数设置为 True,将每行数据作为一个独立的 JSON 对象输出。

2.2.4 输出到 HTML 文件

Pandas 提供了 to_html() 方法将 DataFrame 输出到 HTML 文件。

语法:

DataFrame.to_html(buf=None, columns=None, col_space=None, header=True, index=True, na_rep='NaN', formatters=None, float_format=None, sparsify=None, index_names=True, justify=None, max_rows=None, max_cols=None, show_dimensions=False, decimal='.', bold_rows=True, classes=None, escape=True, notebook=False, border=None, table_id=None, render_links=False, storage_options=None)

常用参数:

  • buf: 文件路径或缓冲区。如果为 None,则返回字符串。

  • columns: 要写入的列的列表。

  • header: 是否写入列名,默认为 True。

  • index: 是否写入索引,默认为 True。

  • na_rep: 用于表示缺失值的字符串,默认为 'NaN'

  • classes: CSS 类名。

代码示例:

import pandas as pd # 创建一个 DataFrame data = {'姓名': ['Alice', 'Bob', 'Charlie'], '年龄': [25, 30, 28], '城市': ['北京', '上海', '广州']} df = pd.DataFrame(data) # 输出到 HTML 文件 df.to_html('output.html', index=False) # 输出到 HTML 文件,并添加 CSS 类名 df.to_html('output_styled.html', index=False, classes='styled-table')

代码解释:

  • 第一个示例将 DataFrame df 输出到名为 output.html 的文件中,不包含索引列。

  • 第二个示例添加了 CSS 类名 styled-table,可以自定义表格的样式。

2.2.5 输出到 SQL 数据库

Pandas 提供了 to_sql() 方法将 DataFrame 输出到 SQL 数据库。需要安装相应的数据库驱动程序,例如 sqlalchemy

语法:

DataFrame.to_sql(name, con, schema=None, if_exists='fail', index=True, index_label=None, chunksize=None, dtype=None, method=None)

常用参数:

  • name: 表名。

  • con: 数据库连接对象或连接字符串。

  • if_exists: 如果表已存在,该如何处理。可以是 'fail' (默认)、'replace' (删除表并创建新表) 或 'append' (将数据追加到表)。

  • index: 是否将索引作为列写入,默认为 True。

  • index_label: 索引列的标签。

  • dtype: 列的数据类型。

代码示例:

import pandas as pd from sqlalchemy import create_engine # 创建一个 DataFrame data = {'姓名': ['Alice', 'Bob', 'Charlie'], '年龄': [25, 30, 28], '城市': ['北京', '上海', '广州']} df = pd.DataFrame(data) # 创建一个 SQLite 数据库连接 engine = create_engine('sqlite:///output.db') # 输出到 SQL 数据库 df.to_sql('人员信息', engine, if_exists='replace', index=False)

代码解释:

  • 首先,创建了一个 SQLite 数据库连接。

  • 然后,将 DataFrame df 输出到名为 人员信息 的表中,如果表已存在,则删除表并创建新表,不包含索引列。

2.2.6 其他输出方法

除了上述常用的输出方法外,Pandas 还提供了其他一些输出方法,例如:

  • to_latex(): 输出到 LaTeX 格式。

  • to_markdown(): 输出到 Markdown 格式。

  • to_string(): 输出到字符串。

  • to_clipboard(): 输出到剪贴板。

2.2.7 数据输出流程图

以下是一个使用 Mermaid 绘制的数据输出流程图:

流程图解释:

  1. 从 DataFrame 或 Series 对象开始。

  2. 选择要输出的数据格式,例如 CSV、Excel、JSON、HTML 或 SQL。

  3. 根据选择的格式,调用相应的 to_ 方法,例如 to_csv()to_excel()to_json()to_html()to_sql()

  4. 将数据输出到相应的文件或数据库。

2.2.8 注意事项

  • 在输出数据时,需要注意文件编码,特别是当数据包含中文等非 ASCII 字符时。

  • 根据不同的输出格式,可能需要安装额外的库,例如 openpyxlxlsxwritersqlalchemy 等。

  • 在输出到 SQL 数据库时,需要确保数据库连接配置正确,并且具有相应的权限。

2.2.9 总结

Pandas 提供了丰富的输出方法,可以将 DataFrame 或 Series 对象输出到不同的文件格式或数据存储。通过灵活使用这些方法,可以方便地将数据导出到其他应用程序或系统中使用。理解各种输出方法的参数和用法,可以更好地控制数据的输出格式和内容。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U