当前位置: 首页 > news >正文

Pandas 模块之数据的读取

        数据读取是数据分析的第一步,只有正确读取数据,才能进行后续的处理和分析。Pandas 提供了丰富的函数来读取不同格式的数据。

一、读取文本文件中的数据

文本文件是一种常见的数据存储格式,Pandas 中主要通过read_table()read_csv()函数来读取。

这两个函数的主要区别在于默认的分隔符不同。read_table()函数默认以 “\t”(制表符)分割文件中的数据,而read_csv()函数默认以 “,”(逗号)分割数据。

比如有一个名为 a2.txt 的文件,里面的数据以逗号分隔,包含品种、本期、上期等信息。这时我们用read_csv()函数可以直接读取。如果用read_table()函数,就需要设置 sep 参数为逗号 “,” 才能正确读取。

这里有个小秘诀,读取文本文件时,不同的分割符主要通过 sep 参数来指定。如果文本文件中的数据是以其他分割符来分割的,比如既有空格又有制表符,那么需要指定 sep 参数为 “\s+”,它可以匹配任何空格。另外,sep 参数还可以是一个正则表达式,在分析日志文件时经常会用到。

二、Excel 文件的读取和写入

Excel 文件也是我们经常打交道的数据格式,Pandas 对 Excel 文件的操作也很便捷。

1. 读取 Excel 文件中的数据

我们使用read_excel()函数来读取 Excel 文件。这个函数的参数很丰富,io 参数指定文件路径或类文件对象;sheet_name 参数指定要读取的工作表,默认值为 0,即第一个工作表,也可以是工作表名称或列表;header 参数指定作为列名的行,默认值为 0,若数据不包含列名,则设置 header=None;index_col 参数用于指定列为索引列。

文件路径分为相对路径和绝对路径。相对路径是以当前文件为基准进行目录指向,“../” 表示当前程序文件所在目录的上一级目录,“./” 表示当前程序文件所在的目录,“/” 表示当前程序文件的根目录。绝对路径是文件在硬盘中的完整路径,在 Python 中可以在路径前加 “r” 来避免转义字符的问题。

2. 读取指定 Sheet 页中的数据

通过read_excel()函数的 sheet_name 参数可以读取指定的 Sheet 页数据。比如 sheet_name=0 表示第一个 Sheet 页,sheet_name=“Sheet1” 表示名为 “Sheet1” 的 Sheet 页,还可以传入列表来同时读取多个 Sheet 页。

3. 通过行列索引读取指定数据

我们可以通过行索引和列索引来读取 Excel 中的指定数据。如果要指定行索引,可以设置read_excel()函数的 index_col 参数。如果要读取指定列的数据,可以使用 usecols 参数,它可以是整数、列表或字符串,分别表示不同的列选择方式。

4. 将数据写入 Excel 文件中

使用to_excel()方法可以将数据写入 Excel 文件。该方法的 excel_writer 参数指定文件路径或 ExcelWriter 对象;sheet_name 参数指定工作表名称,默认为 “Sheet1”;na_rep 参数指定缺失数据的表示方式;columns 参数指定要写入的列;header 参数指定是否写出列名;index 参数指定是否写出行索引;startrow 和 startcol 参数指定开始写入数据的行列位置。

三、CSV 文件的读取和写入

CSV 文件是以逗号分隔的值文件,是一种常见的表格数据格式。

1. 读取 CSV 文件中的数据

read_csv()函数用于读取 CSV 文件。它的参数和read_excel()函数有很多相似之处,filepath_or_buffer 参数指定文件路径或 URL 链接;delimiter 或 sep 参数指定分隔符,默认为逗号;header、names、index_col、usecols 等参数的用法也和read_excel()函数类似。

需要注意的是,不同操作系统下的 CSV 文件分隔符可能不同,比如 Mac 系统下的 CSV 文件分隔符一般为分号,读取时要指定正确的分隔符。另外,encoding 参数用于指定 CSV 文件的编码格式,如 UTF-8、GB2312、GBK 等。

2. 将数据写入 CSV 文件中

to_csv()方法可以将数据写入 CSV 文件。通过设置不同的参数,我们可以实现多种功能,比如指定保存路径(相对路径或绝对路径)、设置分隔符、替换空值、格式化数据、保留特定列、是否保留列名和行索引等。其中,设置 index=False 可以忽略索引,这在很多情况下很有用。

四、读取 HTML 网页

Pandas 的read_html()函数可以读取 HTML 网页中的表格数据,实现简单的爬虫功能。

read_html()函数的 io 参数可以是文件路径或 URL 链接,需要注意网址不接受 https 时,可以尝试去掉 “s”;match 参数是正则表达式,用于返回与正则表达式匹配的表格;flavor 参数指定解析器,默认为 “lxml”;header 和 index_col 参数用于指定列标题和行标题;encoding 参数指定文件的编码格式。

比如,我们可以使用read_html()函数爬取 “NBA 球员薪资” 数据,它会返回一个包含表格数据的 DataFrame 对象。

五、读取数据库中的数据

数据库是存储大量数据的重要方式,Pandas 也可以读取数据库中的数据,主要包括 MySQL 和 MongoDB。

1. 读取 MySQL 数据库中的数据

要读取 MySQL 数据库中的数据,首先需要安装 MySQL 数据库,创建数据库并导入 SQL 文件。然后使用 pymysql 模块来连接数据库,步骤如下:安装 pymysql 模块;使用connect()方法连接数据库,需要指定数据库地址、用户名、密码、数据库名和字符集等;使用cursor()方法创建游标;通过游标执行 SQL 语句;最后关闭游标和连接。

之后,我们可以使用 Pandas 的read_sql()函数读取 MySQL 数据库中的数据。该函数的 sql 参数是 SQL 查询语句;con 参数是连接数据库的引擎;index_col 参数指定某一列作为索引列;coerce_float 参数可以将数字形式的字符串直接以 float 型读入;parse_dates 参数可以将某一列日期型字符串转换为 datetime 型数据。

2. 读取 MongoDB 数据库中的数据

读取 MongoDB 数据库中的数据,需要导入 MongoDB 数据库,使用 PyMongo 模块连接 MongoDB 数据库,然后再使用 Pandas 来读取其中的数据。

http://www.lryc.cn/news/585993.html

相关文章:

  • arcgis投影后数据显示问题记录
  • 非程序员如何用 AI 提升日常工作效率:以产品经理为例的落地实践指南
  • error while loading shared libraries
  • 小架构step系列12:单元测试
  • [爬虫实战] 多进程/多线程/协程-异步爬取豆瓣Top250
  • Pytest 跳过测试技巧:灵活控制哪些测试该跑、哪些该跳过
  • linux系统mysql性能优化
  • H2在springboot的单元测试中的应用
  • 多 Agent 强化学习实践指南(一):CTDE PPO 在合作捕食者-猎物游戏中的应用详解
  • 引入了模块但没有使用”,会不会被打包进去
  • 【C++小白逆袭】内存管理从崩溃到精通的秘籍
  • c++反射实现
  • 张量数值计算
  • 跨系统开发代码换行符如何解决
  • 每日一SQL 【销售分析 III】
  • 试用了10款翻译软件后,我只推荐这一款!完全免费还超好用
  • 大模型KV缓存量化误差补偿机制:提升推理效率的关键技术
  • Qt6中出现 OpenCV(4.10.0) Error: Assertion failed
  • 第10讲——一元函数积分学的几何应用
  • 创建 UIKit 项目教程
  • 在 Java 中,计算两个 Integer 类型表示的合格数量与总数量的合格率,并保留四位小数,推荐使用 BigDecimal 来确保精度
  • springboot+swagger2文档从swagger-bootstrap-ui更换为knife4j及文档接口参数不显示问题
  • 股票的k线
  • 从基础加热到智能生态跨越:艾芬达用创新重构行业价值边界!
  • 人工智能自动化编程:传统软件开发vs AI驱动开发对比分析
  • 【科研绘图系列】R语言绘制小提琴图
  • 【TGRS 2025】可变形交互注意力Deform-Interac-Att,即插即用,涨点神器!
  • 【八股消消乐】Kafka集群 full GC 解决方案
  • 系统分析师-计算机系统-输入输出系统
  • 计算机视觉与深度学习 | 基于Matlab的多特征融合可视化指纹识别系统(附完整代码)