如何使用Python中的Pandas将CSV转换为Excel?
在本文中,我们将向您展示如何使用Python的pandas模块将CSV文件(逗号分隔值)转换为Excel文件。
假设我们已经拿到了一个名为 ExampleCsvFile.csv 的Excel文件,其中包含一些随机文本。我们将在将给定的Excel文件转换为CSV文件后返回CSV文件。
ExampleCsvFile.csv
球员姓名 | 年龄 | 类型 | 国家 | 团队 | 得分 | 击球 |
---|---|---|---|---|---|---|
Virat Kohli | 33 | 击球手 | 印度 | Royal Challengers Bangalore | 6300 | 20 |
Bhuvneshwar Kumar | 34 | 击球手 | 印度 | Sun Risers Hyderabad | 333 | 140 |
Mahendra Singh Dhoni | 39 | 击球手 | 印度 | Chennai Super Kings | 4500 | 0 |
Rashid Khan | 28 | 投球手 | 阿富汗 | Gujarat Titans | 500 | 130 |
Hardik Pandya | 29 | 全才 | 印度 | Gujarat Titans | 2400 | 85 |
David Warner | 34 | 击球手 | 澳大利亚 | Delhi Capitals | 5500 | 12 |
Kieron Pollard | 35 | 全才 | 西印度群岛 | Mumbai Indians | 3000 | 67 |
Rohit Sharma | 33 | 击球手 | 印度 | Mumbai Indians | 5456 | 20 |
Kane Williamson | 33 | 击球手 | 新西兰 | Sun Risers Hyderabad | 3222 | 5 |
Kagiso Rabada | 29 | 投球手 | 南非 | Lucknow Capitals | 335 | 111 |
方法1:转换CSV到Excel而不显示索引值
算法(步骤)
以下是执行所需任务的算法/步骤:
-
导入 pandas 模块 (Pandas是一个Python开源数据分析和操作包,该模块可以读取、过滤和重排Excel、JSON和CSV格式的小型和大型数据集。)
-
使用pandas read_csv() 函数(将CSV文件加载为pandas dataframe)创建变量来存储CSV文件的路径。
-
使用pandas ExcelWriter() 类(要将DataFrame保存到Excel sheet中,请使用pandas ExcelWriter()类。该类通常用于保存多个sheet并将数据追加到现有的Excel sheet中。
Pandas ExcelWriter Highlights:如果安装了xlsxwriter,则默认使用它;否则使用openpyxl。
-
使用 to_excel() 函数(要将DataFrame导出到Excel文件,请使用to_excel()函数。在写入单个对象到Excel文件时必须指定目标文件名),通过将索引指定为False作为参数来将CSV文件转换为excel文件。这里的index= False 表示不显示索引值。
-
使用 save() 函数(保存文件)保存结果/输出的Excel文件。
示例
以下程序将CSV文件转换为Excel文件,不显示索引值 –
# 导入pandas模块
import pandas as pd
# 读取CSV文件
cvsDataframe = pd.read_csv('ExampleCsvFile.csv')
# 创建一个输出excel文件
resultExcelFile = pd.ExcelWriter('ResultExcelFile.xlsx')
# 将CSV文件转换为Excel文件
cvsDataframe.to_excel(resultExcelFile, index=False)
# 保存Excel文件
resultExcelFile.save()
输出
执行以上程序后,将创建一个新的Excel文件(resultExcelFile.csv),其中包含来自CSV文件的数据。
在此程序中,我们使用pandas read_csv()函数作为数据框读取包含一些随机虚拟数据的CSV文件,然后我们创建了一个新的Excel文件,并使用to_excel()函数将上述CSV数据框转换为Excel。如果我们将索引传递为false参数,则输出的Excel文件将删除开始处的索引行。如果没有给定索引参数,则会在Excel表格的开头添加一个索引行,然后我们使用save()函数保存所得到的Excel文件以应用更改。
方法2:将CSV转换为带有索引值的Excel
算法(步骤)
要执行所需的任务,需要遵循以下算法/步骤 –
-
将CSV加载为pandas dataframe。
-
通过将索引指定为True作为excel()函数的一个参数并显示索引值将CSV文件转换为Excel文件。index=True表示这里显示索引值。
-
使用 save() 函数(保存文件)保存结果/输出的Excel文件。
使用pandas模块的DataFrame()函数将读取的输出Excel文件转换为数据框对象,并读取输出Excel文件。
- 显示数据框对象。
示例
以下程序将CSV文件转换为带有索引值的Excel文件 –
#导入pandas模块
import pandas as pd
#读取csv文件
cvsDataframe = pd.read_csv('ExampleCsvFile.csv')
#创建输出的excel文件
resultExcelFile = pd.ExcelWriter('ResultExcelFile.xlsx')
#将csv文件转换为excel文件
cvsDataframe.to_excel(resultExcelFile, index=True)
#保存excel文件
resultExcelFile.save()
#读取并将输出/结果的excel文件转换为数据框对象
excelDataframe=pd.read_excel('ResultExcelFile.xlsx')
#显示数据框对象
print(excelDataframe)
输出
Unnamed: 0 球员姓名 年龄 类型 国家 \
0 0 Virat Kohli 33 Batsman India
1 1 Bhuvneshwar Kumar 34 Batsman India
2 2 Mahendra Singh Dhoni 39 Batsman India
3 3 Rashid Khan 28 Bowler Afghanistan
4 4 Hardik Pandya 29 All rounder India
5 5 David Warner 34 Batsman Australia
6 6 Kieron Pollard 35 All rounder West Indies
7 7 Rohit Sharma 33 Batsman India
8 8 Kane Williamson 33 Batsman New Zealand
9 9 Kagiso Rabada 29 Bowler South Africa
球队 运动员得分 球员击倒数
0 Royal Challengers Bengaluru 6300 20
1 Sun Risers Hyderabad 333 140
2 Chennai Super Kings 4500 0
3 Gujarat Titans 500 130
4 Gujarat Titans 2400 85
5 Delhi Capitals 5500 12
6 Mumbai Indians 3000 67
7 Mumbai Indians 5456 20
8 Sun Risers Hyderabad 3222 5
9 Lucknow Capitals 335 111
当我们将索引作为参数传递为true时,结果excel文件将在开始添加索引行,然后我们使用save()函数保存结果excel文件以应用更改。然后我们将excel文件转换为数据框以查看csv文件中的值是否复制到Excel文件中。
结论
在本教程中,我们学习了如何读取CSV文件,然后将其转换为Excel文件并删除索引或在Excel文件开头添加索引,最后将Excel文件转换为pandas数据框。