看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
pandas
的 to_csv()
方法用于将 DataFrame
对象导出为 CSV(逗号分隔值)文件或字符串。它非常灵活,允许用户指定多种参数来自定义导出的格式。to_csv()
方法主要应用于 DataFrame
数据类型。
将对象写入逗号分隔值(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,
chunksize=None, date_format=None,
doublequote=True, escapechar=None,
decimal='.', errors='strict',
storage_options=None)
path_or_buf: str
或 类似路径的对象,或 None
,默认为 None
None
,则返回 CSV 格式的字符串。sep: str
,默认值为 ','
na_rep: str
,默认值为 ''
float_format: str
或 可调用对象,默认值为 None
columns: 序列, 可选
header: bool
或 list
,默认值为 True
index: bool
,默认值为 True
index_label: str
或 序列 或 False
,默认值为 None
header
和 index
为 True
,则使用索引名。mode: {‘w’, ‘x’, ‘a’}
,默认值为 w
'w'
:覆盖现有文件。'x'
:创建新文件,若文件已存在则失败。'a'
:追加到现有文件的末尾。encoding: str
,可选
'utf-8'
。compression: str
或 dict
,默认值为 infer
'gzip'
、'bz2'
、'zip'
等。quoting: csv
模块中的常量,可选
quotechar: str
,默认值为 '"'
lineterminator: str
,可选
chunksize: int
或 None
date_format: str
,默认值为 None
doublequote: bool
,默认值为 True
escapechar: str
,默认值为 None
decimal: str
,默认值为 '.'
errors: str
,默认值为 strict
storage_options: dict
,可选
s3://
、gcs://
等 URL 的相关选项。path_or_buf
为 None
,返回 CSV 格式的字符串;否则返回 None
。DataFrame
数据导出为 CSV 文件用于存档、共享或进一步分析时,to_csv()
是最常用的方法之一。创建包含“df”但不带索引的“out.csv”
df = pd.DataFrame({'name': ['Raphael', 'Donatello'],
'mask': ['red', 'purple'],
'weapon': ['sai', 'bo staff']})
df.to_csv('out.csv', index=False)
创建包含“out.csv”的“out.zip”
>>> df = pd.DataFrame({'name': ['Raphael', 'Donatello'],
... 'mask': ['red', 'purple'],
... 'weapon': ['sai', 'bo staff']})
>>> df.to_csv('out.csv', index=False)
要将csv文件写入新文件夹或嵌套文件夹,您首先需要使用Pathlib或os创建它:
from pathlib import Path
filepath = Path('folder/subfolder/out.csv')
filepath.parent.mkdir(parents=True, exist_ok=True)
df.to_csv(filepath)
import os
os.makedirs('folder/subfolder', exist_ok=True)
df.to_csv('folder/subfolder/out.csv')
import pandas as pd
# 构造示例数据
df = pd.DataFrame({
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'Salary': [50000, 60000, 70000]
})
# 导出为 CSV 文件
df.to_csv('output.csv', index=False)
# 输出内容为文件:output.csv
"""
Name,Age,Salary
Alice,25,50000
Bob,30,60000
Charlie,35,70000
"""
import pandas as pd
# 构造示例数据
df = pd.DataFrame({
'Name': ['Alice', 'Bob', None],
'Age': [25, 30, 35],
'Salary': [50000, None, 70000]
})
# 导出为 CSV 文件,使用分号作为分隔符,并用 'N/A' 表示缺失值
df.to_csv('output_custom.csv', sep=';', na_rep='N/A')
# 输出内容为文件:output_custom.csv
"""
;Name;Age;Salary
0;Alice;25;50000.0
1;Bob;30;N/A
2;N/A;35;70000.0
"""
import pandas as pd
# 构造示例数据
df = pd.DataFrame({
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'Salary': [50000, 60000, 70000]
})
# 导出为 CSV 文件,只包含 'Name' 和 'Salary' 列,并自定义索引标签
df.to_csv('output_subset.csv', columns=['Name', 'Salary'], index_label='ID')
# 输出内容为文件:output_subset.csv
"""
ID,Name,Salary
0,Alice,50000
1,Bob,60000
2,Charlie,70000
"""
import pandas as pd
# 构造示例数据
df = pd.DataFrame({
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'Salary': [50000, 60000, 70000]
})
# 将 DataFrame 转换为 CSV 格式字符串
csv_str = df.to_csv(index=False)
# 输出 CSV 字符串
print(csv_str)
"""
Name,Age,Salary
Alice,25,50000
Bob,30,60000
Charlie,35,70000
"""
通过这些示例,我们可以看到 to_csv()
方法在数据导出方面的强大功能和灵活性。你可以根据实际需求自定义输出的 CSV 文件格式。
更新时间:Aug. 13, 2024, 3:01 p.m. 标签:pandas python csv