Python 如何使用Pandas将CSV转换为Excel
在这篇文章中,我们将介绍如何使用Python中的pandas模块将CSV文件(逗号分隔值)转换为Excel文件。
假设我们已经有一个名为 ExampleCsvFile.csv 的Excel文件,其中包含一些随机文本。在将给定的Excel文件转换为CSV文件后,我们将返回一个CSV文件。
ExampleCsvFile.csv
| 球员名字 | 年龄 | 类型 | 国家 | 球队 | 得分 | 门将 |
|---|---|---|---|---|---|---|
| 维拉特·科利 | 33 | 打击手 | 印度 | 皇家挑战者班加罗尔 | 6300 | 20 |
| 布胡文什瓦尔·库马尔 | 34 | 打击手 | 印度 | 太阳升海得拉巴 | 333 | 140 |
| 马亨德拉·辛格·多尼 | 39 | 打击手 | 印度 | 钦奈超级国王 | 4500 | 0 |
| 拉西德·汗 | 28 | 玻浪 | 阿富汗 | 古吉拉特泰坦队 | 500 | 130 |
| 哈迪克·潘迪亚 | 29 | 全能选手 | 印度 | 古吉拉特泰坦队 | 2400 | 85 |
| 大卫·华纳 | 34 | 击球手 | 澳大利亚 | 德里首都队 | 5500 | 12 |
| 基伦·波拉德 | 35 | 全能选手 | 西印度群岛 | 孟买印度人队 | 3000 | 67 |
| 罗希特·夏尔马 | 33 | 球员 | 印度 | 孟买印度人 | 5456 | 20 |
| 凯恩·威廉姆森 | 33 | 球员 | 新西兰 | 太阳升海得拉巴 | 3222 | 5 |
| 卡吉索·拉巴达 | 29 | 投球手 | 南非 | 幸运城队 | 335 | 111 |
方法1:将CSV转换为Excel而不显示索引值
步骤
以下是执行所需任务的算法/步骤:
- 导入 pandas模块 (Pandas是一个Python开源的数据操作和分析包。该模块可以读取、过滤和重新排列Excel、JSON和CSV格式的小型和大型数据集。)
-
创建一个变量来存储CSV文件的路径,使用pandas read_csv() 函数读取文件后(将CSV文件加载为pandas数据帧)。
-
使用pandas ExcelWriter() 类创建一个输出的Excel文件(要将DataFrame保存到Excel表格中,请使用pandas的ExcelWriter()类。该类通常用于保存多个工作表并将数据追加到现有的Excel表格中。
Pandas ExcelWriter的要点:如果已安装xlsxwriter,则默认使用该库;否则使用openpyxl库)。
- 使用 to_excel() 函数将CSV文件转换为Excel文件(要将DataFrame导出到Excel文件中,请使用to_excel()函数。在写入单个对象到Excel文件时,必须指定目标文件名),传递index=False作为参数以不显示索引值。这里的index= False 表示不显示索引值。
-
使用 save() 函数(保存文件)保存结果/输出的Excel文件。
示例
以下程序将CSV文件转换为Excel文件而不显示索引值:
# importing pandas module
import pandas as pd
# reading the csv file
cvsDataframe = pd.read_csv('ExampleCsvFile.csv')
# creating an output excel file
resultExcelFile = pd.ExcelWriter('ResultExcelFile.xlsx')
# converting the csv file to an excel file
cvsDataframe.to_excel(resultExcelFile, index=False)
# saving the excel file
resultExcelFile.save()
输出
在执行上述程序后,将创建一个名为resultExcelFile.csv的新的Excel文件,并将CSV文件中的数据写入其中。
在这个程序中,我们使用pandas的read_csv()函数将一个包含一些随机虚拟数据的CSV文件读取为一个数据帧,然后我们创建一个新的excel文件,并使用to_excel()函数将上述CSV数据帧转换为excel格式。如果我们将索引参数设置为false,输出的excel文件将去掉开头的索引行。如果没有指定索引参数,它会在excel表的开头添加一个索引行,然后我们使用save()函数保存结果excel文件以应用更改。
方法2:将CSV转换为显示索引值的Excel文件
步骤
要执行所需的任务,需要遵循以下算法/步骤−
- 将CSV文件加载为pandas数据帧。
- 通过将index参数设置为True作为excel()函数的参数,将CSV文件转换为excel文件,并显示索引值。index=True表示这里显示索引值。
- 使用save()函数(保存文件)保存结果/输出的excel文件。
- 使用read_excel()函数读取输出的Excel文件(将Excel文件加载为pandas数据帧),并使用pandas模块的DataFrame()函数将其转换为数据帧对象。
- 显示数据帧对象。
示例
以下程序将CSV文件转换为显示索引值的excel文件−
# importing pandas module
import pandas as pd
# reading the csv file
cvsDataframe = pd.read_csv('ExampleCsvFile.csv')
# creating an output excel file
resultExcelFile = pd.ExcelWriter('ResultExcelFile.xlsx')
# converting the csv file to an excel file
cvsDataframe.to_excel(resultExcelFile, index=True)
# saving the excel file
resultExcelFile.save()
# Reading and Converting the output/result excel file into a dataframe object
excelDataframe=pd.read_excel('ResultExcelFile.xlsx')
# Displaying the dataframe object
print(excelDataframe)
输出
Unnamed: 0 Player Name Age Type Country \
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
Team Runs Wickets
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
在这里,我们将index作为一个true的参数传递,结果Excel文件在开头添加了索引行,然后我们使用save()函数保存结果的Excel文件以应用更改。然后,我们将Excel文件转换为数据框以查看CSV文件中的值是否被复制到Excel文件中。
结论
在本教程中,我们学习了如何读取CSV文件,然后将其转换为Excel文件并删除索引或在Excel文件开头添加索引,最后将Excel文件转换为Pandas数据框。
极客笔记