导读:任何原始格式的数据载入DataFrame后,都可以使用类似DataFrame.to_csv()的方法输出到相应格式的文件或者目标系统里。本文将介绍一些常用的数据输出目标格式。
作者:李庆辉
来源:大数据DT(ID:hzdashuju)
01 CSV
DataFrame.to_csv方法可以将DataFrame导出为CSV格式的文件,需要传入一个CSV文件名。
df.to_csv(
'done.csv'
)

df.to_csv(
'data/done.csv'
# 可以指定文件目录路径
df.to_csv(
'done.csv'
, index=
False
# 不要索引
另外还可以使用sep参数指定分隔符,columns传入一个序列指定列名,编码用encoding传入。如果不需要表头,可以将header设为False。如果文件较大,可以使用compression进行压缩:
# 创建一个包含out.csv的压缩文件out.zip
compression_opts = dict(method=
'zip'
,

                        archive_name=
'out.csv'
)  

df.to_csv(
'out.zip'
, index=
False
,

          compression=compression_opts)  

02 Excel
将DataFrame导出为Excel格式也很方便,使用DataFrame.to_excel方法即可。要想把DataFrame对象导出,首先要指定一个文件名,这个文件名必须以.xlsx或.xls为扩展名,生成的文件标签名也可以用sheet_name指定。
如果要导出多个DataFrame到一个Excel,可以借助ExcelWriter对象来实现。
# 导出,可以指定文件路径
df.to_excel(
'path_to_file.xlsx'
)

# 指定sheet名,不要索引
df.to_excel(
'path_to_file.xlsx'
, sheet_name=
'Sheet1'
, index=
False
)

# 指定索引名,不合并单元格
df.to_excel(
'path_to_file.xlsx'
, index_label=
'label'
, merge_cells=
False
)
多个数据的导出如下:
# 将多个df分不同sheet导入一个Excel文件中
with
 pd.ExcelWriter(
'path_to_file.xlsx'
as
 writer:

    df1.to_excel(writer, sheet_name=
'Sheet1'
)

    df2.to_excel(writer, sheet_name=
'Sheet2'
)
使用指定的Excel导出引擎如下:
# 指定操作引擎
df.to_excel(
'path_to_file.xlsx'
, sheet_name=
'Sheet1'
, engine=
'xlsxwriter'
)

# 在'engine'参数中设置ExcelWriter使用的引擎
writer = pd.ExcelWriter(
'path_to_file.xlsx'
, engine=
'xlsxwriter'
)

df.to_excel(writer)

writer.save()


# 设置系统引擎
from
 pandas 
import
 options  
# noqa: E402
options.io.excel.xlsx.writer = 
'xlsxwriter'
df.to_excel(
'path_to_file.xlsx'
, sheet_name=
'Sheet1'
)
03 HTML
DataFrame.to_html会将DataFrame中的数据组装在HTML代码的table标签中,输入一个字符串,这部分HTML代码可以放在网页中进行展示,也可以作为邮件正文。
print(df.to_html())

print(df.to_html(columns=[
0
])) 
# 输出指定列
print(df.to_html(bold_rows=
False
)) 
# 表头不加粗
# 表格指定样式,支持多个
print(df.to_html(classes=[
'class1'
'class2'
]))
04 数据库(SQL)
将DataFrame中的数据保存到数据库的对应表中:
# 需要安装SQLAlchemy库
from
 sqlalchemy 
import
 create_engine

# 创建数据库对象,SQLite内存模式
engine = create_engine(
'sqlite:///:memory:'
)

# 取出表名为data的表数据
with
 engine.connect() 
as
 conn, conn.begin():

    data = pd.read_sql_table(
'data'
, conn)


# data
# 将数据写入
data.to_sql(
'data'
, engine)

# 大量写入
data.to_sql(
'data_chunked'
, engine, chunksize=
1000
)

# 使用SQL查询
pd.read_sql_query(
'SELECT * FROM data'
, engine)
05 Markdown
Markdown是一种常用的技术文档编写语言,Pandas支持输出Markdown格式的字符串,如下:
print(cdf.to_markdown())


'''

|    |   x |   y |   z |

|:---|----:|----:|----:|

| a  |   1 |   2 |   3 |

| b  |   4 |   5 |   6 |

| c  |   7 |   8 |   9 |

'''

小结
本文介绍了如何将DataFrame对象数据进行输出,数据经输出、持久化后会成为固定的数据资产,供我们进行归档和分析。
关于作者:李庆辉,数据产品专家,某电商公司数据产品团队负责人,擅长通过数据治理、数据分析、数据化运营提升公司的数据应用水平。精通Python数据科学及Python Web开发,曾独立开发公司的自动化数据分析平台,参与教育部“1+X”数据分析(Python)职业技能等级标准评审。中国人工智能学会会员,企业数字化、数据产品和数据分析讲师,在个人网站“盖若”上编写的技术和产品教程广受欢迎。
本书摘编自《深入浅出Pandas:利用Python进行数据处理与分析》,机械工业出版社华章公司2021年出版。转载请与我们取得授权。
延伸阅读深入浅出Pandas
点击上图了解及购买

转载请联系微信:DoctorData
推荐语:这是一本全面覆盖了Pandas使用者的普遍需求和痛点的著作,基于实用、易学的原则,从功能、使用、原理等多个维度对Pandas做了全方位的详细讲解,既是初学者系统学习Pandas难得的入门书,又是有经验的Python工程师案头必不可少的查询手册。《利用Python进行数据分析》学习伴侣,用好Python必备。
直播预告👇
干货直达👇
更多精彩👇
在公众号对话框输入以下关键词
查看更多优质内容!
读书 | 书单 | 干货|讲明白|神操作 | 手把手
大数据 | 云计算 | 数据库 | Python | 爬虫 | 可视化
AI | 人工智能 | 机器学习 | 深度学习 | NLP
5G|中台 | 用户画像数学 | 算法 数字孪生
据统计,99%的大咖都关注了这个公众号
👇
继续阅读
阅读原文