【7.0】Pandas csv读写文件
【一】Python Pandas读取文件
-
当使用 Pandas 做数据分析的时,需要读取事先准备好的数据集,这是做数据分析的第一步。
-
Panda 提供了多种读取数据的方法:
-
read_csv() 用于读取文本文件
-
read_json() 用于读取 json 文件
-
read_sql_query() 读取 sql 语句的,
-
【1】CSV文件读取
- CSV 又称逗号分隔值文件,是一种简单的文件格式,以特定的结构来排列表格数据。
- CSV 文件能够以纯文本形式存储表格数据,比如电子表格、数据库文件,并具有数据交换的通用格式。
- CSV 文件会在 Excel 文件中被打开,其行和列都定义了标准的数据格式。
- 将 CSV 中的数据转换为 DataFrame 对象是非常便捷的。
- 和一般文件读写不一样,它不需要你做打开文件、读取文件、关闭文件等操作。
- 相反,您只需要一行代码就可以完成上述所有步骤,并将数据存储在 DataFrame 中。
- 下面进行实例演示,首先您需要创建一组数据,并将其保存为 CSV 格式,数据如下:
- 注意:将上述数据保存到
.txt
的文本文件中,然后将文件的扩展名后缀修改为 csv,即可完成 csv 文件的创建。
- 接下来,我们使用下列代码读写数据:
- 在下一节会对 read_csv() 函数做详细讲解。
【2】json读取文件
- 您可以通过下列方法来读取一个 json 文件,如下所示:
【3】SQL数据库读取
- 如果想要从 SQL 数据库读取数据,首先您应该使用 Python 和数据库建立连接,然后将查询语句传递给 read_sql_query() 方法,下面做简单地演示:
(1)安装pysqlite3模块
(2)建立数据连接
(3)数据库读取数据
- 在 SQLite 数据库中创建一张信息表,您可以随意添加一些信息,最后使用下列方法读取数据即可:
【二】Pandas csv读写文件
-
我们知道,文件的读写操作属于计算机的 IO 操作,Pandas IO 操作提供了一些读取器函数,比如 pd.read_csv()、pd.read_json 等,它们都返回一个 Pandas 对象。
-
在 Pandas 中用于读取文本的函数有两个,分别是: read_csv() 和 read_table() ,它们能够自动地将表格数据转换为 DataFrame 对象。其中 read_csv 的语法格式,如下:
- 下面,新建一个 txt 文件,并添加以下数据
- 将 txt 文件另存为 person.csv 文件格式,直接修改文件扩展名即可。
- 接下来,对此文件进行操作。
【1】read_csv()
- read_csv() 表示从 CSV 文件中读取数据,并创建 DataFrame 对象。
(1)自定义索引
- 在 CSV 文件中指定了一个列,然后使用
index_col
可以实现自定义索引。
(2)查看每一列的dtype
- 注意:默认情况下,Salary 列的 dtype 是 int 类型,但结果显示其为 float 类型,因为我们已经在上述代码中做了类型转换。
(3)更改文件标头名
- 使用 names 参数可以指定头文件的名称。
- 注意:文件标头名是附加的自定义名称,但是您会发现,原来的标头名(列标签名)并没有被删除,此时您可以使用
header
参数来删除它。
(4)通过传递标头所在行号实现删除
- 假如原标头名并没有定义在第一行,您也可以传递相应的行号来删除它。
(5)跳过指定的行数
skiprows
参数表示跳过指定的行数。
- 注意:包含标头所在行。
【2】to_csv()
- Pandas 提供的 to_csv() 函数用于将 DataFrame 转换为 CSV 数据。
- 如果想要把 CSV 数据写入文件,只需向函数传递一个文件对象即可。
- 否则,CSV 数据将以字符串格式返回。
- 下面看一组简单的示例:
- 指定 CSV 文件输出时的分隔符,并将其保存在 pandas.csv 文件中
【三】Pandas Excel读写操作详解
- Excel 是由微软公司开发的办公软件之一,它在日常工作中得到了广泛的应用。
- 在数据量较少的情况下,Excel 对于数据的处理、分析、可视化有其独特的优势,因此可以显著提升您的工作效率。
- 但是,当数据量非常大时,Excel 的劣势就暴露出来了,比如,操作重复、数据分析难等问题。
- Pandas 提供了操作 Excel 文件的函数,可以很方便地处理 Excel 表格。
【1】to_excel()
- 通过 to_excel() 函数可以将 Dataframe 中的数据写入到 Excel 文件。
- 如果想要把单个对象写入 Excel 文件,那么必须指定目标文件名;
- 如果想要写入到多张工作表中,则需要创建一个带有目标文件名的ExcelWriter对象,并通过sheet_name参数依次指定工作表的名称。
- to_ecxel() 语法格式如下:
参数名称 | 描述说明 |
---|---|
excel_wirter | 文件路径或者 ExcelWrite 对象。 |
sheet_name | 指定要写入数据的工作表名称。 |
na_rep | 缺失值的表示形式。 |
float_format | 它是一个可选参数,用于格式化浮点数字符串。 |
columns | 指要写入的列。 |
header | 写出每一列的名称,如果给出的是字符串列表,则表示列的别名。 |
index | 表示要写入的索引。 |
index_label | 引用索引列的列标签。如果未指定,并且 hearder 和 index 均为为 True,则使用索引名称。如果 DataFrame 使用 MultiIndex,则需要给出一个序列。 |
startrow | 初始写入的行位置,默认值0。表示引用左上角的行单元格来储存 DataFrame。 |
startcol | 初始写入的列位置,默认值0。表示引用左上角的列单元格来储存 DataFrame。 |
engine | 它是一个可选参数,用于指定要使用的引擎,可以是 openpyxl 或 xlsxwriter。 |
- 简单的示例
- 在较新版本的 Pandas 中,
pd.ExcelWriter
对象不再有save
方法。- 您可以使用
close
方法来保存并关闭ExcelWriter
对象
【2】read_excel()
- 如果您想读取 Excel 表格中的数据,可以使用 read_excel() 方法,其语法格式如下:
参数名称 | 说明 |
---|---|
io | 表示 Excel 文件的存储路径。 |
sheet_name | 要读取的工作表名称。 |
header | 指定作为列名的行,默认0,即取第一行的值为列名;若数据不包含列名,则设定 header = None。若将其设置 为 header=2,则表示将前两行作为多重索引。 |
names | 一般适用于Excel缺少列名,或者需要重新定义列名的情况;names的长度必须等于Excel表格列的长度,否则会报错。 |
index_col | 用做行索引的列,可以是工作表的列名称,如 index_col = ‘列名’,也可以是整数或者列表。 |
usecols | int或list类型,默认为None,表示需要读取所有列。 |
squeeze | boolean,默认为False,如果解析的数据只包含一列,则返回一个Series。 |
converters | 规定每一列的数据类型。 |
skiprows | 接受一个列表,表示跳过指定行数的数据,从头部第一行开始。 |
nrows | 需要读取的行数。 |
skipfooter | 接受一个列表,省略指定行数的数据,从尾部最后一行开始。 |
- 示例如下所示
__EOF__

本文作者:Chimengmeng
本文链接:https://www.cnblogs.com/dream-ze/p/17726184.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/dream-ze/p/17726184.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文来自博客园,作者:Chimengmeng,转载请注明原文链接:https://www.cnblogs.com/dream-ze/p/17726184.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!