如何在Python中将Excel文件转换为CSV
本文将向您展示如何使用Python将Excel文件转换为CSV文件(逗号分隔值)。
假设我们使用名为 sampleTutorialsPoint.xlsx 的Excel文件包含一些随机文本。我们将在将给定的Excel文件转换为CSV文件后返回CSV文件。
sampleTutorialsPoint.xlsx
玩家姓名 | 年龄 | 类型 | 国家 | 队伍 | 得分 | 球数 |
---|---|---|---|---|---|---|
Virat Kohli | 33 | 打者 | 印度 | 皇家挑战者班加罗尔 | 6300 | 20 |
Bhuvaneshwar Kumar | 34 | 打者 | 印度 | 孙莱赫德拉巴 | 333 | 140 |
Mahendra Singh Dhoni | 39 | 打者 | 印度 | 金奈超级国王 | 4500 | 0 |
Rashid Khan | 28 | 球员 | 阿富汗 | 古吉拉特泰坦 | 500 | 130 |
Hardik Pandya | 29 | 全能型 | 印度 | 古吉拉特泰坦 | 2400 | 85 |
David Warner | 34 | 打者 | 澳大利亚 | 德里首都 | 5500 | 12 |
Kieron Pollard | 35 | 全能型 | 西印度群岛 | 孟买印度人 | 3000 | 67 |
Rohit Sharma | 33 | 打者 | 印度 | 孟买印度人 | 5456 | 20 |
Kane Williamson | 33 | 打者 | 新西兰 | 孙莱赫德拉巴 3222 | 5 | |
Kagiso Rabada | 29 | 球员 | 南非 | 卢克诺首都 | 335 | 111 |
方法1:使用Pandas模块将Excel转换为CSV
算法(步骤)
下面是执行所需任务的算法/步骤 –
-
导入 pandas模块 (Pandas是Python开源数据处理和分析包)
-
创建一个变量以存储输入Excel文件的路径。
-
使用 pandas read_excel() 函数(将 Excel 文件对象读取为数据框架对象)读取给定的 Excel 文件内容。
-
使用 to_csv() 函数(将对象转换为 CSV 文件)通过将输出 Excel 文件名称、索引作为 None 和标题作为 True 作为参数从 Excel 文件转换为 CSV 文件。
-
使用 read_csv() 函数(将 CSV 文件加载为 pandas 数据帧)读取输出 CSV 文件并将其转换为数据框架对象。
-
显示/显示数据帧对象。
示例
下面的程序将 Excel 文件转换为 CSV 文件并返回新的 CSV 文件。
# 导入 pandas 模块
import pandas as pd
# 输入 Excel 文件路径
inputExcelFile ="sampleTutorialsPoint.xlsx"
# 读取 Excel 文件
excelFile = pd.read_excel (inputExcelFile)
# 将 Excel 文件转换为 CSV 文件
excelFile.to_csv ("ResultCsvFile.csv", index = None, header=True)
# 读取并转换输出的 CSV 文件为 dataframe 对象
dataframeObject = pd.DataFrame(pd.read_csv("ResultCsvFile.csv"))
# 显示 dataframe 对象
dataframeObject
输出
在运行该程序后,将生成以下输出 −
| index | Player Name | Age | Type | Country | Team |Runs | Wickets |
|--------|---------------------|-----|-----------|------------------|---------------------------|----- |---------|
| 0 |Virat Kohli | 33|Batsman | India |Royal Challengers Bangalore| 6300 | 20 |
| 1 |Bhuvaneshwar Kumar | 34|Batsman | India |Sun Risers Hyderabad | 333 | 140 |
| 2 |Mahendra Singh Dhoni | 39|Batsman | India |Chennai Super Kings | 4500 | 0 |
| 3 |Rashid Khan | 28|Bowler | Afghanistan |Gujarat Titans | 500 | 130 |
| 4 |Hardik Pandya | 29|All rounder| India |Gujarat Titans | 2400 | 85 |
| 5 |David Warner | 34|Batsman | Australia |Delhi Capitals | 5500 | 12 |
| 6 |Kieron Pollard | 35|All rounder| West Indies |Mumbai Indians | 3000 | 67 |
| 7 |Rohit Sharma | 33|Batsman | India |Mumbai Indians | 5456 | 20 |
| 8 |Kane Williamson | 33|Batsman | New Zealand |Sun Risers Hyderabad | 3222 | 5 |
| 9 |Kagiso Rabada | 29|Bowler | South Africa |Lucknow Capitals | 335 | 111 |
在该程序中,我们使用 pandas 的 read_excel()函数读取包含一些随机虚拟数据的 Excel 文件,然后使用 to_csv()函数将 Excel 文件转换为 csv 文件。 如果我们将索引作为 false 参数传递,则最终 CSV 文件不包含开始的索引行。 然后,我们将 CSV 转换为数据框以查看从 Excel 文件复制到 CSV 文件的值。
方法 2:使用 openpyxl 和 CSV 模块将 Excel 转换为 CSV
算法(步骤)
需要遵循以下算法/步骤来执行所需的任务
- 使用 import 关键字,导入 openpyxl (Openpyxl 是用于与 Excel 文件交互和管理的 Python 包。支持具有 xlsx/xlsm/xltx/xltm扩展名的 Excel 2010 及更高版本文件。数据科学家使用 Openpyxl 进行数据分析、数据复制、数据挖掘、绘制图表、样式表、公式添加和其他操作)和 CSV 模块。
pip install openpyxl
-
创建一个变量以存储输入Excel文件的路径。
-
要创建/载入工作簿对象,将输入的Excel文件传递给openpyxl模块的 load_workbook() 函数(载入工作簿)。
-
以写模式打开输出CSV文件,使用 open() 和 writer() 函数将输入的Excel文件转换为CSV文件。
-
使用for循环遍历工作表的每一行。
-
使用 writerow() 函数,将Excel文件的单元格数据逐行写入结果CSV文件中。
例子
以下程序将Excel文件转换为CSV文件,并返回一个新的CSV文件−
#导入openpyxl模块和csv模块
import openpyxl
import csv
#输入Excel文件路径
inputExcelFile = 'sampleTutorialsPoint.xlsx'
#创建或加载Excel工作簿
newWorkbook = openpyxl.load_workbook(inputExcelFile)
#获取活动工作簿的工作表(默认为Sheet1)
firstWorksheet = newWorkbook.active
#以写模式打开一个输出csv文件
OutputCsvFile = csv.writer(open("ResultCsvFile.csv", 'w'), delimiter=",")
#遍历每一个工作表中的行
for eachrow in firstWorksheet.rows:
#逐行将Excel文件的数据写入结果csv文件中
OutputCsvFile.writerow([cell.value for cell in eachrow])
输出
执行以上程序后,将创建一个新的CSV文件(ResultCsvFile.csv),其中包含Excel数据。
在此程序中,我们有一个带有一些随机虚假数据的Excel文件,我们将其作为openpyxl工作簿加载并设置为使用活动属性。然后我们创建了一个新的CSV文件并以写入模式打开它,然后我们依次处理Excel文件的每一行,并将数据复制到新创建的CSV文件中。
结论
在本教程中,我们学习了如何读取Excel文件并将其转换为openpyxl工作簿,然后如何将其转换为CSV文件并删除索引,最后如何将CSV文件转换为pandas数据帧。