Pandas to_csv() - 将 DataFrame 转换为 CSV

Pandas DataFrame to_csv() 函数将 DataFrame 转换为 CSV 数据。我们可以传递一个文件对象来将 CSV 数据写入文件中。否则,CSV 数据将以字符串格式返回。

Pandas DataFrame to_csv() 语法

DataFrame to_csv() 函数的语法是:

def to_csv(self,path_or_buf=None,sep=",",na_rep="",float_format=None,columns=None,header=True,index=True,index_label=None,mode="w",encoding=None,compression="infer",quoting=None,quotechar='"',line_terminator=None,chunksize=None,date_format=None,doublequote=True,escapechar=None,decimal=".",
)

一些重要的参数包括:

  • path_or_buf: 用于写入 CSV 数据的文件对象。如果未提供此参数,则 CSV 数据将以字符串形式返回。
  • sep: CSV 数据的分隔符。它应该是一个长度为 1 的字符串,默认为逗号。
  • na_rep: 表示空值或缺失值的字符串,默认为空字符串。
  • columns: 用于指定要包含在 CSV 输出中的列的序列。
  • header: 允许的值为布尔值或字符串列表,默认为 True。如果为 False,则不会在输出中写入列名。如果是字符串列表,则用于写入列名。字符串列表的长度应与写入 CSV 文件中的列数相同。
  • index: 如果为 True,则索引包含在 CSV 数据中。如果为 False,则索引值不会写入 CSV 输出。
  • index_label: 用于指定索引的列名。

Pandas DataFrame 转换为 CSV 示例

让我们看一些使用 to_csv() 函数将 DataFrame 转换为 CSV 数据的常见示例。

1. 将 DataFrame 转换为 CSV 字符串

import pandas as pdd1 = {'Name': ['Pankaj', 'Meghna'], 'ID': [1, 2], 'Role': ['CEO', 'CTO']}df = pd.DataFrame(d1)print('DataFrame:\n', df)# 默认 CSV
csv_data = df.to_csv()
print('\nCSV String:\n', csv_data)

输出:

DataFrame:Name  ID Role
0  Pankaj   1  CEO
1  Meghna   2  CTOCSV String:,Name,ID,Role
0,Pankaj,1,CEO
1,Meghna,2,CTO

2. 指定 CSV 输出的分隔符

csv_data = df.to_csv(sep='|')
print(csv_data)

输出:

|Name|ID|Role
0|Pankaj|1|CEO
1|Meghna|2|CTO

如果指定的分隔符长度不是 1,则会引发 TypeError: “delimiter” must be a 1-character string

3. 仅选择部分列进行 CSV 输出

csv_data = df.to_csv(columns=['Name', 'ID'])
print(csv_data)

输出:

,Name,ID
0,Pankaj,1
1,Meghna,2

请注意,索引不被视为有效列。

4. 在 CSV 输出中忽略标题行

csv_data = df.to_csv(header=False)
print(csv_data)

输出:

0,Pankaj,1,CEO
1,Meghna,2,CTO

5. 在 CSV 中设置自定义列名

csv_data = df.to_csv(header=['NAME', 'ID', 'ROLE'])
print(csv_data)

输出:

,NAME,ID,ROLE
0,Pankaj,1,CEO
1,Meghna,2,CTO

同样,索引不被视为 DataFrame 对象的列。

6. 在 CSV 输出中跳过索引列

csv_data = df.to_csv(index=False)
print(csv_data)

输出:

Name,ID,Role
Pankaj,1,CEO
Meghna,2,CTO

7. 在 CSV 中设置索引列名

csv_data = df.to_csv(index_label='Sl No.')
print(csv_data)

输出:

Sl No.,Name,ID,Role
0,Pankaj,1,CEO
1,Meghna,2,CTO

8. 将 DataFrame 转换为 CSV 文件

with open('csv_data.txt', 'w') as csv_file:df.to_csv(path_or_buf=csv_file)

我们使用 with 语句打开文件,它会在 with 语句块执行完成时关闭文件。此代码片段将创建一个包含以下数据的 CSV 文件。!Pandas DataFrame To Csv File

9. CSV 输出中的空值表示

import pandas as pdd1 = {'Name': ['Pankaj', 'Meghna'], 'ID': [1, pd.NaT], 'Role': [pd.NaT, 'CTO']}
df = pd.DataFrame(d1)
print('DataFrame:\n', df)csv_data = df.to_csv()
print('\nCSV String:\n', csv_data)csv_data = df.to_csv(na_rep="None")
print('CSV String with Null Data Representation:\n', csv_data)

输出:

DataFrame:Name   ID Role
0  Pankaj    1  NaT
1  Meghna  NaT  CTOCSV String:,Name,ID,Role
0,Pankaj,1,
1,Meghna,,CTOCSV String with Null Data Representation:,Name,ID,Role
0,Pankaj,1,None
1,Meghna,None,CTO

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

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

相关文章

ElasticSearch级查询Query DSL下

目录 全文检索 match query匹配查询 multi_match query 多字段查询 match_phrase query短语查询 query_string query simple_query_string bool query布尔查询 highlight高亮 自定义高亮html标签 多字段高亮 全文检索 全文检索查询(Full Text Queries&…

【蓝桥杯冲冲冲】k 短路 / [SDOI2010] 魔法猪学院

蓝桥杯备赛 | 洛谷做题打卡day33 文章目录 蓝桥杯备赛 | 洛谷做题打卡day33题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示数据规模数据更新日志 题解代码我的一些话 【模板】k 短路 / [SDOI2010] 魔法猪学院 题目背景 注:对于 k k k 短路问…

正则可视化工具:学习和编写正则表达式的利器

引言 正则表达式是一种强大的文本匹配和处理工具,但对于初学者和非专业开发者来说,编写和理解正则表达式可能是一项具有挑战性的任务。为了帮助人们更好地学习和编写正则表达式,正则可视化工具应运而生。本文将探讨正则可视化工具的优点&…

ChatGPT在国际中文教育领域引起的变革与挑战

随着ChatGPT这一先进的自然语言处理模型的出现,教学、学习、测评和辅导的传统方式正在面临可能的重塑。她是否会影响中文教育的未来方向,甚至取代中文教师的角色,成为了许多人热议的话题。本文旨在探讨ChatGPT与中文测评之间的联系&#xff0…

并行计算导论 笔记 1

目录 并行编程平台隐式并行超标量执行/指令流水线超长指令字处理器 VLIW 内存性能系统的局限避免内存延迟的方法 并行计算平台控制结构通信模型共享地址空间平台消息传递平台对比 物理组织理想并行计算机并行计算机互联网络网络拓朴结构基于总线的网络交叉开关网络多级网络全连…

leaflet 显示自己geoserver发布的中国地图

安装vscode 安装 通义灵码 问题&#xff1a; 用leaflet显示一个wms地图 修改下代码&#xff0c;结果如下&#xff1a; 例子代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport&q…

自然语言处理(NLP)—— 基本概念

自然语言处理&#xff08;Natural Language Processing&#xff0c;简称NLP&#xff09;是人工智能和语言学领域的一个分支&#xff0c;它涉及到计算机和人类&#xff08;自然&#xff09;语言之间的相互作用。它的主要目标是让计算机能够理解、解释和生成人类语言的数据。NLP结…

Debezium发布历史123

原文地址&#xff1a; https://debezium.io/blog/2022/06/02/debezium-1-9-3-final-released/ 欢迎关注留言&#xff0c;我是收集整理小能手&#xff0c;工具翻译&#xff0c;仅供参考&#xff0c;笔芯笔芯. Debezium 1.9.3.Final Released June 2, 2022 by Chris Cranford r…

极狐GitLab 与钉钉的集成实践

DingTalk OAuth 2.0 OmniAuth provider * 引入于 14.5 版本。 您可以使用您的钉钉账号登录极狐GitLab。 登录钉钉开放平台&#xff0c;创建应用。钉钉会生成一个客户端 ID 和密钥供您使用。 登录钉钉开放平台。 在顶部栏上&#xff0c;选择 应用程序开发 > 企业内部开发&am…

【EAI 015】CLIPort: What and Where Pathways for Robotic Manipulation

论文标题&#xff1a;CLIPort: What and Where Pathways for Robotic Manipulation 论文作者&#xff1a;Mohit Shridhar1, Lucas Manuelli, Dieter Fox1 作者单位&#xff1a;University of Washington, NVIDIA 论文原文&#xff1a;https://arxiv.org/abs/2109.12098 论文出处…

【数据结构】链式队列解析(C语言版)

数据结构——链队列解析过程和简单代码实现&#xff1a; 一、简单概念&#xff1a; 动图展示&#xff1a; (1)入队&#xff1a;(2)出队&#xff1a; 二、顺序队列&#xff1a; 思路步奏&#xff1a; &#xff08;1&#xff09;入队操作&#xff1a;&#xff08;2&#xff09;出…

组合模式:简化复杂结构的设计艺术

组合模式&#xff1a;简化复杂结构的设计艺术 在软件开发的世界里&#xff0c;设计模式是帮助我们解决常见问题的一系列最佳实践。其中&#xff0c;组合模式以其独特的方式处理对象的组合&#xff0c;使得单个对象和组合对象的管理变得更加简单和直观。本文将深入探讨组合模式…

《统计学简易速速上手小册》第6章:多变量数据分析(2024 最新版)

文章目录 6.1 主成分分析&#xff08;PCA&#xff09;6.1.1 基础知识6.1.2 主要案例&#xff1a;客户细分6.1.3 拓展案例 1&#xff1a;面部识别6.1.4 拓展案例 2&#xff1a;基因数据分析 6.2 聚类分析6.2.1 基础知识6.2.2 主要案例&#xff1a;市场细分6.2.3 拓展案例 1&…

第2讲投票系统后端架构搭建

创建项目时&#xff0c;随机选择一个&#xff0c;后面会生成配置properties文件 生成文件 maven-3.3.3 设置阿里云镜像 <?xml version"1.0" encoding"UTF-8"?><!-- Licensed to the Apache Software Foundation (ASF) under one or more cont…

【Python】Mac 本地部署 stable-diffusion

其实要在本地部署 stable-diffusion 不难&#xff0c;只要有“魔法”一切都水到渠成&#xff0c;如下图&#xff1a; (base) MacBook-Pro python % git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui Cloning into stable-diffusion-webui... remote: Enu…

前端JavaScript篇之setTimeout、Promise、Async/Await 的区别

目录 setTimeout、Promise、Async/Await 的区别**setTimeout**:思路需要注意的 **Promise**:思路需要注意的 **Async/Await**:思路需要注意的 总结 setTimeout、Promise、Async/Await 的区别 setTimeout: 概念&#xff1a;setTimeout是JavaScript中的一个函数&#xff0c;用于…

Leetcode 3036. Number of Subarrays That Match a Pattern II

Leetcode 3036. Number of Subarrays That Match a Pattern II 1. 解题思路2. 代码实现 3036. Number of Subarrays That Match a Pattern II 1. 解题思路 这一题其实有点水&#xff0c;因为本质上还是一道套路题目&#xff0c;和前两周的两道题目一样&#xff0c;都是考察的…

c++求三个数中最大数

#include<iostream> using namespace std; int main() { int a,b,c; cout<<"请输入三个数字"<<endl;//end后面为小写的L cin>>a>>b>>c; if(a>b&&a>c) cout<<"最大数为a:"<<a<<e…

【MySQL】——数值函数的学习

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-Z1fAnfrxGD7I5gqp {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

人工智能:从概念到现实的辉煌历程

引言 自20世纪中叶以来&#xff0c;人工智能&#xff08;Artificial Intelligence, AI&#xff09;作为一门前沿科技领域&#xff0c;其发展进程犹如一部波澜壮阔的史诗。本文将带领读者走进AI的世界&#xff0c;探索它从最初的梦想设想&#xff0c;历经坎坷与突破&#xff0c…