小白学 Python 数据分析(1):数据分析基础

小白学 Python 数据分析(2):Pandas (一)概述

小白学 Python 数据分析(3):Pandas (二)数据结构 Series

小白学 Python 数据分析(4):Pandas (三)数据结构 DataFrame

小白学 Python 数据分析(5):Pandas (四)基础操作(1)查看数据

小白学 Python 数据分析(6):Pandas (五)基础操作(2)数据选择

小白学 Python 数据分析(7):Pandas (六)数据导入

小白学 Python 数据分析(8):Pandas (七)数据预处理

小白学 Python 数据分析(9):Pandas (八)数据预处理(2)

小白学 Python 数据分析(10):Pandas (九)数据运算

小白学 Python 数据分析(11):Pandas (十)数据分组

小白学 Python 数据分析(12):Pandas (十一)数据透视表(pivot_table)

小白学 Python 数据分析(13):Pandas (十二)数据表拼接

先说个题外话,今天有位小朋友在后台给我留言,说我的公众号头像太吓人了,不敢关注我,怕我入侵她的手机。。。。。。。。。。。

emmmmmmmmmmmm,我都这么牛逼了么,我怎么不知道。

不知道有多少人是因为我的头像太吓人不敢关注我,所以我决定向广大的智慧超群的粉丝群体征集一个头像,没啥要求,积极、阳光、正面即可,如果能和公众号的名字极客或者挖掘机挂钩最佳,方式可以添加小编的微信(allen_6174)发给小编即可,如果采纳,将会全平台更换(可怜的我这个用了近一年的头像啊,我当时还觉得挺 cool 来着)。

闲话少说,我们开始今天的正题,数据导出。

当我们在对数据做完相应的处理后,想要将数据保存下来的时候,就需要用到数据导出了。

其实在前面的文章中,小编曾经使用过一次数据导出成 Excel ,当时没有详细介绍,本文我们详细介绍一下数据导出。

Excel 导出

在做数据导出前,我们需要现有一份 DataFrame 数据,这里的数据小编偷懒,就直接读取之前示例中的 Excel 了,当然这么做并没有什么意义,仅用来演示导出数据。

在 Pandas 中导出 Excel 的时候,需要使用到的方法是 to_excel() 方法,在导出 Excel 文件的时候,一定要写对文件路径,我们在前面的文章中有介绍过文件路径的书写方法,小编这里不多 BB ,直接上示例:

import pandas as pd
# 数据读取
df = pd.read_excel("table_join_exp.xlsx", sheet_name='Sheet1')
# 数据导出
df.to_excel(excel_writer=r'D:\Development\Projects\demo.xlsx')

我们来看下 to_excel() 这个方法的语法:

DataFrame.to_excel(self, 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) → None

to_excel() 这个方法中的参数还是比较多的,我们挑几个常用的介绍一下:

  • excel_writer :文件路径或现有的ExcelWriter
  • sheet_name :字符串,默认是 “Sheet1”
  • float_format :格式化浮点数的字符串
  • header :写出列名。如果给定字符串列表,则假定它是列名称的别名。
  • index :写索引
  • columns :设置要导出的列
  • encoding :编码格式,一般我们选择 'utf-8'
  • na_rep :缺失值处理
  • inf_rep :无穷值的处理
  • 接下来看示例,这个示例小编会尽量写得复杂一点,把我们上面的属性尽可能的都用上,并且标注好注释:

    df.to_excel(excel_writer=r'D:\Development\Projects\demo.xlsx',
                sheet_name='测试文档', # 创建 sheet 名称
                index=False,  # 设置索引不显示
                columns=['编号', '姓名'],  # 设置要导出的列
                encoding='utf-8', # 设置编码格式
                na_rep='0', # 缺失值处理
                inf_rep='inf'  # 无穷值处理
    

    CSV 导出

    在导出 CSV 的时候,要使用到的方法是 to_csv() ,和上面导出 Excel 实际上相差并不大,一样是要先设置文件路径,接下来可以设置索引、导出的列、分隔符号、编码格式、缺失值等等。

    还是先来看下 to_csv() 语法:

    DataFrame.to_csv(self, path_or_buf: Union[str, pathlib.Path, IO[~AnyStr], NoneType] = None, sep: str = ',', na_rep: str = '', float_format: Union[str, NoneType] = None, columns: Union[Sequence[Union[Hashable, NoneType]], NoneType] = None, header: Union[bool, List[str]] = True, index: bool = True, index_label: Union[bool, str, Sequence[Union[Hashable, NoneType]], NoneType] = None, mode: str = 'w', encoding: Union[str, NoneType] = None, compression: Union[str, Mapping[str, str], NoneType] = 'infer', quoting: Union[int, NoneType] = None, quotechar: str = '"', line_terminator: Union[str, NoneType] = None, chunksize: Union[int, NoneType] = None, date_format: Union[str, NoneType] = None, doublequote: bool = True, escapechar: Union[str, NoneType] = None, decimal: Union[str, NoneType] = '.') → Union[str, NoneType]
    

    可以看到的是 to_csv() 比较 to_excel() 有着更多的参数,实际上,我们一些常用的参数并不多,小编下面接着给出一个比较复杂的导出示例:

    df.to_csv(path_or_buf=r'D:\Development\Projects\demo.csv', # 设置导出路径
              index=False,  # 设置索引不显示
              sep=',', # 设置分隔符号
              na_rep='0', # 缺失值处理
              columns=['编号', '姓名'],  # 设置要导出的列
              encoding='utf-8', # 设置编码格式
    

    注释都已经写得很清楚了,就不在多做介绍了。

    本篇文章的就先到这里了,这也是 Pandas 系列的最后一篇,从下一篇开始,我们开始介绍数据可视化 Matplotlib 的使用,希望大家多多关注呦~

    老规矩,所有的示例代码都会上传至代码管理仓库 Github 和 Gitee 上,方便大家取用。

    示例代码-Github

    示例代码-Gitee