一周学会Pandas2 Python数据处理与分析-Pandas2数据导出

news2025/4/15 15:51:02

锋哥原创的Pandas2 Python数据处理与分析 视频教程:  

2025版 Pandas2 Python数据处理与分析 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili

任何原始格式的数据载入DataFrame后,都可以使用类似 DataFrame.to_csv()的方法输出到相应格式的文件或者目标系统里。

支持导出的格式比较多,常用的有csv,excel,sql,html等。

导出CSV文件

导出csv文件我们使用to_csv()方法,pandas2提供了丰富的参数来实现强大的导出功能,我们看下to_csv()方法的参数:

def to_csv(
        self,
        path_or_buf: FilePath | WriteBuffer[bytes] | WriteBuffer[str] | None = None,
        sep: str = ",",
        na_rep: str = "",
        float_format: str | Callable | None = None,
        columns: Sequence[Hashable] | None = None,
        header: bool_t | list[str] = True,
        index: bool_t = True,
        index_label: IndexLabel | None = None,
        mode: str = "w",
        encoding: str | None = None,
        compression: CompressionOptions = "infer",
        quoting: int | None = None,
        quotechar: str = '"',
        lineterminator: str | None = None,
        chunksize: int | None = None,
        date_format: str | None = None,
        doublequote: bool_t = True,
        escapechar: str | None = None,
        decimal: str = ".",
        errors: OpenFileErrors = "strict",
        storage_options: StorageOptions | None = None,
    )

to_csv() 是 pandas 中用于将 DataFrame 导出为 CSV 文件的重要方法。以下是该方法的参数详解:

基本参数

  1. path_or_buf (str, path object, file-like object, 默认为 None)

    • 文件路径或文件对象

    • 如果为 None,则返回 CSV 字符串

  2. sep (str, 默认为 ',')

    • 指定分隔符

    • 例如: sep='\t' 表示制表符分隔

  3. na_rep (str, 默认为 '')

    • 缺失值表示方式

    • 例如: na_rep='NA' 会将缺失值显示为 NA

  4. float_format (str, 默认为 None)

    • 浮点数格式字符串

    • 例如: float_format='%.2f' 保留两位小数

  5. columns (sequence, 可选)

    • 指定要写入的列

    • 例如: columns=['col1', 'col3']

  6. header (bool or list of str, 默认为 True)

    • 是否写入列名

    • 如果传入列表,则用作列名

  7. index (bool, 默认为 True)

    • 是否写入行索引

  8. index_label (str or sequence, 默认为 None)

    • 索引列的列名

    • 如果传入列表且有多级索引,则为每级指定名称

编码与日期格式

  1. encoding (str, 默认为 None)

    • 编码方式

    • 例如: encoding='utf-8'encoding='gbk'

  2. date_format (str, 默认为 None)

    • 日期格式字符串

    • 例如: date_format='%Y-%m-%d'

性能相关参数

  1. mode (str, 默认为 'w')

    • Python 写入模式

    • 'w' 表示写入,'a' 表示追加

  2. compression (str or dict, 默认为 'infer')

    • 压缩方式

    • 可选: 'infer', 'gzip', 'bz2', 'zip', 'xz', None

  3. quoting (int or csv.QUOTE_*, 默认为 csv.QUOTE_MINIMAL)

    • 引用约定

    • 选项:

      • csv.QUOTE_ALL (引用所有字段)

      • csv.QUOTE_MINIMAL (仅引用包含特殊字符的字段)

      • csv.QUOTE_NONNUMERIC (引用所有非数字字段)

      • csv.QUOTE_NONE (不引用)

  4. quotechar (str, 默认为 '"')

    • 用于引用的字符

  5. line_terminator (str, 默认为 '\n')

    • 行结束符

其他参数

  1. chunksize (int, 默认为 None)

    • 按指定行数分批写入

  2. doublequote (bool, 默认为 True)

    • 引用字段中的引号是否双写

  3. escapechar (str, 默认为 None)

    • 用于转义的字符

  4. decimal (str, 默认为 '.')

    • 小数点的字符表示

    • 例如: decimal=',' 用于欧洲格式

我们先看最简单的一个示例,用字典构造一个DataFrame对象,然后直接导出csv文件:

import pandas as pd

d = {'学号': [1, 2, 3],
     '姓名': ['张三', '李四', '王五'],
     '语文': [99, 88, 77],
     '数学': [44, 55, 55],
     '英语': [88, 55, 66]}

df = pd.DataFrame(d)

print(df)

df.to_csv('out/student.csv')

我们运行看下导出的csv文件:

默认是有含行索引的,如果不需要的话,我们加下index=False参数:

df.to_csv('out/student2.csv', index=False)  # 不需要行索引

运行导出的csv文件:

如果不需要表头,可以设置header=False

df.to_csv('out/student3.csv', index=False, header=False)  # 不需要行索引,不要表头

运行导出的csv文件:

导出指定列数据,可以使用columns参数指定:

df.to_csv('out/student4.csv', index=False, columns=['姓名', '语文'])  # 不需要行索引,不要表头

运行导出的csv文件:

导出Excel文件

将DataFrame导出为Excel格式也很方便,使用DataFrame.to_excel方法即可。要想把DataFrame对象导出,首先要指定一个文件名,这个文件名必须以.xlsx或.xls为扩展名,生成的文件标签名也可以用sheet_name 指定。

to_excel()方法参数如下:

def to_excel(
        self,
        excel_writer: FilePath | WriteExcelBuffer | ExcelWriter,
        sheet_name: str = "Sheet1",
        na_rep: str = "",
        float_format: str | None = None,
        columns: Sequence[Hashable] | None = None,
        header: Sequence[Hashable] | bool_t = True,
        index: bool_t = True,
        index_label: IndexLabel | None = None,
        startrow: int = 0,
        startcol: int = 0,
        engine: Literal["openpyxl", "xlsxwriter"] | None = None,
        merge_cells: bool_t = True,
        inf_rep: str = "inf",
        freeze_panes: tuple[int, int] | None = None,
        storage_options: StorageOptions | None = None,
        engine_kwargs: dict[str, Any] | None = None,
    ) 

有个sheet_name标签名称参数,默认值是"Sheet1",其他参数使用和csv基本一致。

下面看一个示例:

import pandas as pd
​
d = {'学号': [1, 2, 3],
     '姓名': ['张三', '李四', '王五'],
     '语文': [99, 88, 77],
     '数学': [44, 55, 55],
     '英语': [88, 55, 66]}
​
df = pd.DataFrame(d)
​
df.to_excel('out/student.xlsx', sheet_name="我的标签页", index=False)

导出的excel文件:

导出sql

将DataFrame中的数据保存到数据库的对应表中,pandas2提供了to_sql()方法,我们看下to_sql()方法的参数:

def to_sql(
        self,
        name: str,
        con,
        schema: str | None = None,
        if_exists: Literal["fail", "replace", "append"] = "fail",
        index: bool_t = True,
        index_label: IndexLabel | None = None,
        chunksize: int | None = None,
        dtype: DtypeArg | None = None,
        method: Literal["multi"] | Callable | None = None,
    )

to_sql() 是 pandas 中用于将 DataFrame 写入 SQL 数据库的方法,支持多种关系型数据库。以下是该方法的详细参数说明:

基本参数

  1. name (str)

    • 目标数据库表名

    • 如果表已存在,行为取决于 if_exists 参数

  2. con (sqlalchemy.engine.Engine or sqlite3.Connection)

    • 数据库连接对象

    • 通常使用 SQLAlchemy 引擎创建

  3. schema (str, 可选)

    • 数据库 schema 名称

    • 默认为 None,使用数据库默认 schema

  4. if_exists (str, 默认为 'fail')

    • 表已存在时的处理方式:

      • 'fail': 抛出 ValueError (默认)

      • 'replace': 删除原表后重建

      • 'append': 向现有表追加数据

写入控制参数

  1. index (bool, 默认为 True)

    • 是否将 DataFrame 的索引作为单独列写入

  2. index_label (str or sequence, 可选)

    • 索引列的列名

    • 如果有多级索引,可传入序列

  3. chunksize (int, 可选)

    • 分批写入的行数

    • 大数据集时使用可减少内存消耗

  4. dtype (dict, 可选)

    • 指定列的数据类型

    • 格式: {'column_name': sqlalchemy.types.Type}

    • 例如: {'price': sqlalchemy.types.Float}

类型推断与性能

  1. method (str or callable, 可选)

    • 控制 SQL 插入方式:

      • None: 标准 SQL INSERT 语句

      • 'multi': 单语句多行插入

      • callable: 自定义插入函数

    • 大数据量时 'multi' 可提高性能

  2. keys (sequence, 可选)

    • 当 method='multi' 时,指定要插入的列

其他参数

  1. fail_on_extra_columns (bool, 默认为 False)

    • 如果为 True,当 DataFrame 包含表中不存在的列时会失败

  2. alter_schema (bool, 默认为 False)

    • 如果为 True,尝试修改表结构以匹配 DataFrame

下面是一个导出sql示例:

import pandas as pd
​
from sqlalchemy import create_engine
​
d = {'学号': [1, 2, 3],
     '姓名': ['张三', '李四', '王五'],
     '语文': [99, 88, 77],
     '数学': [44, 55, 55],
     '英语': [88, 55, 66]}
​
df = pd.DataFrame(d)
​
# 创建数据库引擎
# 注意:替换下面的用户名、密码、主机名和数据库名
engine = create_engine('mysql+pymysql://root:123456@localhost:3308/db_xuanke')
​
df.to_sql('t_student', engine, index_label='id')

运行后,自动建表,以及自动插入数据:

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

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

相关文章

深入解析栈式虚拟机与反向波兰表示法

1.1 什么是虚拟机? 虚拟机(Virtual Machine, VM)是一种软件实现的计算机系统,提供与物理计算机相类似的环境,但在软件层面运行。虚拟机的存在简化了跨平台兼容性、资源管理以及安全隔离等问题。 1.2 栈式虚拟机的架构…

学习MySQL的第八天

海到无边天作岸 山登绝顶我为峰 一、数据库的创建、修改与删除 1.1 引言 在经过前面七天对于MySQL基本知识的学习之后,现在我们从基本的语句命令开始进入综合性的语句的编写来实现特定的需求,从这里开始需要我们有一个宏观的思想&…

AI识别与雾炮联动:工地尘雾治理新途径

利用视觉分析的AI识别用于设备联动雾炮方案 背景 在建筑工地场景中,人工操作、机械作业以及环境因素常常导致局部出现大量尘雾。传统监管方式存在诸多弊端,如效率低、资源分散、监控功能单一、人力效率低等,难以完美适配现代工程需求。例如…

GD32F303-IAP的过程和实验

使用的芯片为GD32F303VC 什么是IAP呢?有个博主写的很清楚;就是远程升级; 【单片机开发】单片机的烧录方式详解(ICP、IAP、ISP)_isp烧录-CSDN博客 我们需要写一个boot 和APP 通过 boot对APP的程序进行更新&#xf…

众趣科技助力商家“以真示人”,让消费场景更真实透明

在当今的消费环境中,消费者权益保护问题日益凸显。无论是网购商品与实物不符、预定酒店民宿与图文描述差异大,还是游览景区遭遇“照骗”,这些问题不仅让消费者在消费和决策过程中倍感困扰,也让商家面临信任危机。 消费者在享受便…

spark core编程之行动算子、累加器、广播变量

一、RDD 行动算子 reduce:聚集 RDD 所有元素,先聚合分区内数据,再聚合分区间数据。 collect:在驱动程序中以数组形式返回数据集所有元素。 foreach:分布式遍历 RDD 元素并调用指定函数。 count:返回 RDD…

提高课:数据结构之树状数组

1&#xff0c;楼兰图腾 #include<iostream> #include<cstring> #include<cstdio> #include<algorithm>using namespace std;typedef long long LL;const int N 200010;int n; int a[N]; int tr[N]; int Greater[N], lower[N];int lowbit(int x) {ret…

基于javaweb的SpringBoot新闻视频发布推荐评论系统(源码+部署文档)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…

机器学习之PCA主成分分析详解

文章目录 引言一、PCA的概念二、PCA的基本数学原理2.1 内积与投影2.2 基2.3 基变换2.4 关键问题及优化目标2.5 方差2.6 协方差2.7 协方差矩阵2.8 协方差矩阵对角化 三、PCA执行步骤总结四、PCA计算实例五、PCA参数解释六、代码实现七、PCA的优缺点八、总结 引言 在机器学习领域…

回溯——固定套路 | 面试算法12道

目录 输出二叉树所有路径 路径总和问题 组合总和问题 分割回文串 子集问题 排列问题 字母大小写全排列 单词搜索 复原IP地址 电话号码问题 括号生成问题 给我一种感觉是回溯需要画图思考是否需要剪枝。 元素个数n相当于树的宽度&#xff08;横向&#xff09;&#x…

Maven和MyBatis学习总结

目录 Maven 1.Maven的概念&#xff1a; 2.在具体的使用中意义&#xff1a; 3.与传统项目引入jar包做对比&#xff1a; 传统方式&#xff1a; 在maven项目当中&#xff1a; 4.在创建maven项目后&#xff0c;想要自定义一些maven配置 5.maven项目的结构 6.maven指令的生…

AndroidTV 当贝播放器-v1.5.2-官方简洁无广告版

AndroidTV 当贝播放器 链接&#xff1a;https://pan.xunlei.com/s/VONXRf0g3cT0ECVt6GEsoODFA1?pwds4qv# AndroidTV 当贝播放器-v1.5.2-官方简洁无广告版

Python生成exe

其中的 -w 参数是 PyInstaller 用于窗口模式&#xff08;Windowed mode&#xff09;&#xff0c;它会关闭命令行窗口的输出&#xff0c;这通常用于 图形界面程序&#xff08;GUI&#xff09;&#xff0c;比如使用 PyQt6, Tkinter, PySide6 等。 所以&#xff1a; 如果你在没有…

MySql 自我总结

目录 1. 数据库约束 1.1约束类型 2. 表的设计 2.1 一对一 2.2 一对多 2.3 多对多 3. 新增 4. 查询 4.1 聚合查询 4.2 GROUP BY 4.3 HAVING 4.4 联合查询 4.5 内连接 4.5.1 内连接的核心概念 4.5.2 内连接的语法 4.5.3 ON 与 WHERE 的区别 4.6 自连接 4.6.1 定…

uni-app app 安卓和ios防截屏

首先可参考文档 uni.setUserCaptureScreen 这里需要在项目中引入这个插件 uni-usercapturescreen - DCloud 插件市场 否则会报错,在需要防止截屏录屏的页面中,加入 uni.setUserCaptureScreen({enable: false,success() {console.log(全局截屏录屏功能已禁用);},fail(err)…

【Go】windows下的Go安装与配置,并运行第一个Go程序

【Go】windows下的Go安装与配置&#xff0c;并运行第一个Go程序 安装环境&#xff1a;windows10 64位 安装版本&#xff1a;go1.16 windows/amd64 一、安装配置步骤 1.到官方网址下载安装包 https://golang.google.cn/dl/ 默认情况下 .msi 文件会安装在 c:\Go 目录下。可自行配…

vue3腾讯云直播 前端拉流(前端页面展示直播)

1、引入文件&#xff0c;在index.html <link href"https://tcsdk.com/player/tcplayer/release/v5.3.2/tcplayer.min.css" rel"stylesheet" /><!--播放器脚本文件--><script src"https://tcsdk.com/player/tcplayer/release/v5.3.2/t…

【MYSQL从入门到精通】数据库基础操作、数据类型

目录 一些基础操作语句 创建库名 选择要操作的数据库 删除数据库 磁盘中删除文件的原理 数据库安全的各种措置 查看MYSQL的帮助 数值类型 字符串类型 日期类型 一些基础操作语句 1.使用客户端工具连接数据库服务器&#xff1a;mysql -uroot -p 2.查看所有数据库&am…

论文阅读笔记——Multi-Token Attention

MTA 论文 在 Transformer 中计算注意力权重时&#xff0c;仅依赖单个 Q 和 K 的相似度&#xff0c;无法有效捕捉多标记组合信息。&#xff08;对于 A、B 两个词&#xff0c;单标记注意力需要分别计算两个词的注意力分数&#xff0c;再通过后处理定位共同出现的位置或通过多层隐…

vue3 antdesign table表格特定单元格背景变色

效果&#xff1a; <a-table :columns"columnsAll" :data-source"tableAllData"bordered size"middle" :scroll"{ x: 100,y: 600 }" :pagination"false"style"margin: 0 10px 10px 10px;" ><template #…