Pandas to_csv() - 将 DataFrame 转换为 CSV

news/2024/2/20 19:17:07

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

https://www.xjx100.cn/news/3270972.html

相关文章

Redis集中管理Session和系统初始化参数详解

Redis 是一个开源的、基于内存的键值存储系统,通常用作数据库、缓存或消息传递系统。在 Web 应用程序中,Redis 常用于集中管理 Session 数据和系统初始化参数。 Redis 管理 Session Session 是 Web 应用程序中用于保持用户状态的一种机制…

SpringCloud入门概述

1. 介绍 Spring Cloud 1.1 什么是 Spring Cloud Spring Cloud 是一个基于 Spring Boot 的微服务架构开发工具集,它为开发者提供了一系列开箱即用的工具和库,用于构建分布式系统中的微服务架构。Spring Cloud 提供了诸如服务发现、配置中心、负载均衡、…

【Java EE初阶十二】网络编程TCP/IP协议(二)

1. 关于TCP 1.1 TCP 的socket api tcp的socket api和U大片的socket api差异很大,但是和前面所讲的文件操作很密切的联系 下面主要讲解两个关键的类: 1、ServerSocket:给服务器使用的类,使用这个类来绑定端口号 2、Socket&#xf…

MongoDB:开启你的NoSQL之旅(一)

随着大数据时代的到来,传统的关系型数据库在某些场景下已经无法满足快速增长和变化的数据需求。这时,NoSQL数据库应运而生,其中MongoDB以其独特的特性和功能,在众多NoSQL数据库中脱颖而出。本文将为你详细介绍MongoDB的特性和功能…

CTFshow web(php命令执行 55-59)

web55 <?php /* # -*- coding: utf-8 -*- # Author: Lazzaro # Date: 2020-09-05 20:49:30 # Last Modified by: h1xa # Last Modified time: 2020-09-07 20:03:51 # email: h1xactfer.com # link: https://ctfer.com */ // 你们在炫技吗&#xff1f; if(isset($_GET[…

云原生:下一代应用的构建与运行方式

随着云计算技术的快速发展&#xff0c;云原生&#xff08;Cloud Native&#xff09;已经成为了一个炙手可热的话题。那么&#xff0c;什么是云原生&#xff1f;它为什么如此重要&#xff1f;在本文中&#xff0c;我们将一起探讨云原生的概念、优势以及如何构建云原生应用。 一…

uniapp禁止截屏录屏/投屏功能(adb投放失效)

经过测试代码写在App.vue会失效,请写在符合逻辑的界面 uni-app 实现安卓防截屏 在uniapp中实现 要在App中全局禁止截屏&#xff0c;那么可以在App.vue中调用 如果想要某个页面防截屏就在某个页面调用&#xff0c;但是在离开这个页面的时候要恢复截屏&#xff0c;否则全局…

Linux中pipe管道操作

管道的读写操作&#xff1a; 读操作&#xff1a; ​​​有数据&#xff1a;read正常读&#xff0c;返回读出的字节数无数据&#xff1a;1 写段全部关闭&#xff1a;read解除阻塞&#xff0c;返回0&#xff0c;相当于文件读到了尾部 2 写段没有全部关闭&#xf…