Pandas 数据读取与导出

Pandas 是一个强大的 Python 库,用于数据处理和分析。它提供了许多函数来读取和导入数据,支持多种文件格式,如 CSV、Excel、SQL 数据库、JSON 等。以下是一些常用的数据读取和导出方法:

常用方法

格式文件格式读取函数写入(导出)函数
binaryExcelread_excelto_excel
textCSVread_csv read_tableto_csv
textJSONread_jsonto_json
text网页表格HTMLread_htmlto_html
text剪切板read_clipboardto_clipboard
SQ!LSQLread_sqlto_sql
XMLread_xmlread_xml
textMarkdownto_markdown

其中:

  • 读取函数一般会赋值给一个变量 df, df = pd.read_()
  • 输出函数是将变量自身进行操作并输出 df.to_()

常用函数方法

  • Excel 对象
    ~ pd.ExcelFile 对象
    ~ pd.ExcelWriter 对象
    ~ pd.ExcelWriter 对象的属性和方法
  • 读取数据
    ~ pd.read_csv()
    ~ pd.read_excel()
    ~ pd.json_normalize()
    ~ pd.read_pickle()
    ~ pd.read_table()
    ~ pd.DataFrame.from_dict() 从字典创建 DataFrame
    ~ pd.read_clipboard() 从剪贴板读取数据
    ~ pd.read_json() 读取 JSON
    ~ pd.read_sql() 读取数据库数据
    ~ pd.read_fwf() 读取固定宽度格式文件
    ~ pd.read_html() 从 HTML 文档提取表格数据
    ~ pd.read_parquet() 读取 Parquet 文件
  • 导出数据
    ~ to_csv() 导出为 CSV文件
    ~ to_excel() 导出为 Excel 文件
    ~ to_dict() 输出字典
    ~ to_pickle() 序列化为 pickle 文件
    ~ to_json() 转换为 JSON 格式字符串
    ~ to_html() 转换为 HTML 表格格式
    ~ to_sql() 写入到关系型数据库
    ~ to_parquet() 保存为 parquet 文件

数据读取

  1. 读取 CSV 文件
import pandas as pddf = pd.read_csv('file.csv')
# 可以使用参数来调整读取行为,如分隔符、缺失值标记、列名等
  1. 读取 Excel 文件
df = pd.read_excel('file.xlsx', sheet_name='Sheet1')
# 可以指定工作表名称或索引,或者使用 sheet_name=None 来读取所有工作表
  1. 从 SQL 数据库读取
import sqlite3  # 或其他数据库连接库conn = sqlite3.connect('database.db')
df = pd.read_sql_query('SELECT * FROM table_name', conn)
conn.close()
# 对于其他数据库,如 MySQL、PostgreSQL,需要使用相应的连接库和驱动
  1. 读取 JSON 文件
df = pd.read_json('file.json')
# 可以使用 orient 参数来指定 JSON 数据的布局
  1. 读取 HTML 表格
df = pd.read_html('http://example.com/page_with_table.html')[0]
# read_html 返回一个 DataFrame 列表,通常使用索引 [0] 来获取第一个表格
  1. 从剪贴板读取
df = pd.read_clipboard()
# 这对于从 Excel 等应用程序中复制数据特别有用

数据导出

  1. 导出到 CSV 文件
df.to_csv('output_file.csv', index=False)
# index=False 表示不导出 DataFrame 的索引
  1. 导出到 Excel 文件
df.to_excel('output_file.xlsx', sheet_name='Sheet1', index=False)
# 可以指定工作表名称和其他选项,如引擎(对于较新的 Pandas 版本,默认引擎为 'openpyxl')
  1. 导出到 SQL 数据库
conn = sqlite3.connect('database.db')
df.to_sql('table_name', conn, if_exists='replace', index=False)
conn.close()
# if_exists 参数可以是 'fail'(如果表存在则引发错误)、'replace'(替换表)、'append'(在表中添加数据)
  1. 导出到 JSON 文件
df.to_json('output_file.json', orient='records', lines=True)
# orient 参数可以指定 JSON 数据的布局,lines=True 表示每行是一个 JSON 对象
  1. 导出到 HTML 文件
with open('output_file.html', 'w') as f:f.write(df.to_html())
# 也可以使用 pandas 提供的 to_html() 方法生成 HTML 字符串,然后保存到文件中
  1. 导出到 Excel 的多个工作表
with pd.ExcelWriter('output_file_with_sheets.xlsx') as writer:df1.to_excel(writer, sheet_name='Sheet1', index=False)df2.to_excel(writer, sheet_name='Sheet2', index=False)
# 使用 ExcelWriter 上下文管理器可以方便地写入多个工作表

注意事项

  • 文件路径:确保文件路径正确,并且程序有适当的读写权限。
  • 数据类型:在导出时,注意数据类型的兼容性,特别是当数据包含特殊字符或日期时间类型时。
  • 依赖项:某些导出方法(如到 SQL 数据库)可能需要额外的库和数据库驱动。
  • 性能:对于大型数据集,导出到某些格式(如 Excel)可能会很慢,并且可能会受到内存限制。在这种情况下,考虑将数据分批导出或使用更适合大数据集的格式(如 CSV)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/62328.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu20.04运行DM-VIO

目录 环境配置非ROS环境运行编译运行结果图 ROS环境参考 环境配置 Ubuntu20.04 将项目中Cmakelists.txt中C 和 opencv版本修改下 C 使用 14 opencv使用4 非ROS环境运行 编译 按照官网即可 cd dm-vio mkdir build cd build cmake .. make -j运行 DM-VIO给的命令是 bin/d…

TDengine 签约深圳综合粒子,赋能粒子研究新突破

在高能物理和粒子研究领域,实验装置的不断升级伴随着海量数据的产生与处理。尤其是随着大湾区综合性国家科学中心的建设步伐加快,深圳综合粒子设施研究院(以下简称“研究院”)作为承载“双区驱动”战略的重要科研机构,…

IDEA连接Apifox客户端

IDEA连接Apifox客户端 一、下载Apifox安装包二、IDEA配置三、配置Apifox和IDEA项目同步 一、下载Apifox安装包 Apifox官网,根据自己的操作系统下载对应的Apifox安装包,我是windows系统所以下载的是windows版。 下载 默认仅为我安装,点击下一…

(C语言) 8大翻译阶段

(C语言) 8大翻译阶段 文章目录 (C语言) 8大翻译阶段⭐前言🗃️8大阶段🗂️1. 字符映射🗂️2. 行分割🗂️3. 标记化🗂️4. 预处理🗂️5. 字符集映射🗂️6. 字符串拼接🗂️7. 翻译&…

php反序列化1_常见php序列化的CTF考题

声明: 以下多内容来自暗月师傅我是通过他的教程来学习记录的,如有侵权联系删除。 一道反序列化的CTF题分享_ctf反序列化题目_Mr.95的博客-CSDN博客 一些其他大佬的wp参考:php_反序列化_1 | dayu’s blog (killdayu.com) 序列化一个对象将…

Spring Boot拦截器(Interceptor)详解

拦截器Interceptor 拦截器我们主要分为三个方面进行讲解: 介绍下什么是拦截器,并通过快速入门程序上手拦截器拦截器的使用细节通过拦截器Interceptor完成登录校验功能 1. 快速入门 什么是拦截器? 是一种动态拦截方法调用的机制&#xff…

从入门到精通:Java异常处理的最佳实践全解

目录 一、理解异常的分类 二、精简异常处理逻辑 三、合理使用finally块 四、避免吞掉异常 五、记录异常 六、自定义异常提高可读性 七、谨慎使用try-catch块 八、重抛异常并添加上下文 总结 在Java中,异常处理是保障程序稳定性和可靠性的重要部分。尽管Java…

Centos Linux 服务器 批量替换文件内容sed

Centos Linux 服务器 批量替换文件内容sed sed -i "s/oldString/newString/g" grep -rl "oldString" ./

使用 Go 语言中的 Context 取消协程执行

使用 Go 语言中的 Context 取消协程执行 在 Go 语言中,协程(goroutine)是一种轻量级的线程,非常适合处理并发任务。然而,如何优雅地取消正在运行的协程是一个常见的问题。本文将通过一个具体的例子来展示如何使用 con…

使用zabbix监控k8s

一、 参考文献 小阿轩yx-案例:Zabbix监控kubernetes云原生环境 手把手教你实现zabbix对Kubernetes的监控 二、部署经验 关于zabbix监控k8s,总体来说是分为两块内容,一是在k8s集群部署zabbix-agent和zabbix- proxy。二是在zabbix进行配置。…

GitCode 平台设置访问令牌 从而git仓库(附pycharm创建版本控制项目)

GitCode 背靠CSDN搞了国产的git平台,但在实际使用过程中,我直接感受就是坑爹!在查找用户令牌(账号密码)这一基本功能上,因为是csdn直接登录跳转过去的用户令牌,没有设置过密码,默认就…

ClamAV 在 CentOS 的开发版本 `clamav-devel`

是的,ClamAV 在 CentOS 上有开发版本(通常称为 clamav-devel),它包含了开发 ClamAV 应用程序所需的头文件和库文件。以下是如何在 CentOS 上安装 ClamAV 及其开发版本的步骤。 ### 1. **安装 EPEL 仓库** ClamAV 通常在 EPEL&am…

go编程中yaml的inline应用

下列代码,设计 Config 和 MyConfig 是为可扩展 Config,同时 Config 作为公共部分可保持变化。采用了匿名的内嵌结构体,但又不希望 yaml 结果多出一层。如果 MyConfig 中的 Config 没有使用“yaml:",inline"”修饰,则读取…

嵌入式MCU常见问题分类汇总

目录 1.系统 1.1 什么是BSP 嵌入式BSP介绍-CSDN博客 2.数据 2.1 串口数据处理(字符转换为十进制数值) 关于串口数据处理(字符转换为十进制数值)-CSDN博客 3.文件 3.1 hex转bin方法 hex转bin方法_lua hex转为bin-CSDN博客

神经网络入门实战:(五)本地数据集的读取,以及从pytorch官网下载数据集的操作

本地带标签图片数据集的读取 代码里面的注释写的都比较清楚,也有拓展的部分,这里就不详细列出。 from torch.utils.data import Dataset # 从torch.utils.data导入Dataset类,用于创建自定义的数据集类 from PIL import Image #引入PIL库中的I…

【Maven】继承和聚合

5. Maven的继承和聚合 5.1 什么是继承 Maven 的依赖传递机制可以一定程度上简化 POM 的配置,但这仅限于存在依赖关系的项目或模块中。当一个项目的多个模块都依赖于相同 jar 包的相同版本,且这些模块之间不存在依赖关系,这就导致同一个依赖…

【C++打怪之路Lv16】-- map set

🌈 个人主页:白子寰 🔥 分类专栏:重生之我在学Linux,C打怪之路,python从入门到精通,数据结构,C语言,C语言题集👈 希望得到您的订阅和支持~ 💡 坚持…

Python爬虫爬取数据报错

报错: Error fetching the URL: (Connection aborted., ConnectionResetError(10054, 远程主机强迫关闭了一个现有的连接。, None, 10054, None)) 报错原因: 目标服务器限制: 目标网站可能已经检测到你的请求来自自动化工具(如爬虫…

【Linux】线程的互斥和同步

【Linux】线程的互斥和同步 线程间的互斥 临界资源:多线程执行共享的资源就叫做临界资源临界区:每个线程内部,访问临界资源的代码,就叫做临界区互斥:任何时刻,互斥保证有且只有一个执行流进入临界区&#…

c++设计模式模块与系统

c 中lambda 本质就是一个匿名(没有名)的函数; 可以用一个数组元素存储一个函数的指针; 通过数组下标来使用函数; 高内聚低耦合 如何理解设计模式中的高内聚低耦合 高内聚: 用于指导如何组织和划分软件设计。 **定义:**高内聚指的…