如何在Python中将Excel转换为CSV
在本文中,我们将展示如何使用Python将Excel文件转换为CSV文件(逗号分隔值)。
假设我们已经有一个名为 sampleTutorialsPoint.xlsx 的Excel文件,其中包含一些随机文本。我们将在将给定的Excel文件转换为CSV文件后返回一个CSV文件。
sampleTutorialsPoint.xlsx
Player Name | Age | Type | Country | Team | Runs | Wickets |
---|---|---|---|---|---|---|
Virat Kohli | 33 | Batsman | India | Royal Challengers Bangalore | 6300 | 20 |
Bhuvaneshwar Kumar | 34 | Batsman | India | Sun Risers Hyderabad | 333 | 140 |
Mahendra Singh Dhoni | 39 | Batsman | India | Chennai Super Kings | 4500 | 0 |
Rashid Khan | 28 | Bowler | Afghanistan | Gujarat Titans | 500 | 130 |
Hardik Pandya | 29 | All rounder | India | Gujarat Titans | 2400 | 85 |
David Warner | 34 | Batsman | Australia | Delhi Capitals | 5500 | 12 |
Kieron Pollard | 35 | All rounder | West Indies | Mumbai Indians | 3000 | 67 |
Rohit Sharma | 33 | Batsman | India | Mumbai Indians | 5456 | 20 |
Kane Williamson | 33 | Batsman | New Zealand | Sun Risers Hyderabad | 3222 | 5 |
Kagiso Rabada | 29 | Bowler | South Africa | Lucknow Capitals | 335 | 111 |
方法1:使用Pandas模块将Excel转换为CSV
算法(步骤)
以下是执行所需任务的算法/步骤:
- 导入 pandas模块 (Pandas是一个Python开源的数据操作和分析包)。
-
创建一个变量来存储输入Excel文件的路径。
-
使用pandas的read_excel()函数(将Excel文件对象读取为数据框对象)读取给定的Excel文件内容。
-
使用to_csv()函数(将对象转换为CSV文件)将Excel文件转换为CSV文件,传递输出Excel文件名、索引为None和标题为true作为参数。
-
使用read_csv()函数(将CSV文件加载为pandas数据框)读取输出的CSV文件,并使用pandas模块的DataFrame()函数将其转换为数据框对象。
-
显示/展示数据框对象。
示例
以下程序将一个Excel文件转换为CSV文件,并返回一个新的CSV文件。
# importing pandas module
import pandas as pd
# input excel file path
inputExcelFile ="sampleTutorialsPoint.xlsx"
# Reading an excel file
excelFile = pd.read_excel (inputExcelFile)
# Converting excel file into CSV file
excelFile.to_csv ("ResultCsvFile.csv", index = None, header=True)
# Reading and Converting the output csv file into a dataframe object
dataframeObject = pd.DataFrame(pd.read_csv("ResultCsvFile.csv"))
# Displaying the dataframe object
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()函数(加载工作簿)。
使用open()和writer()函数以写模式打开输出的CSV文件,将输入的Excel文件转换为CSV文件。
使用for循环遍历工作表中的每一行。
使用writerow()函数将Excel文件的单元格数据逐行写入结果CSV文件。
示例
以下程序将Excel文件转换为CSV文件,并返回一个新的CSV文件−
# importing openpyxl module and csv modules import openpyxl import csv # input excel file path inputExcelFile = 'sampleTutorialsPoint.xlsx' # creating or loading an excel workbook newWorkbook = openpyxl.load_workbook(inputExcelFile) # getting the active workbook sheet(Bydefault-->Sheet1) firstWorksheet = newWorkbook.active # Opening a output csv file in write mode OutputCsvFile = csv.writer(open("ResultCsvFile.csv", 'w'), delimiter=",") # Traversing in each row of the worshsheet for eachrow in firstWorksheet.rows: # Writing data of the excel file into the result csv file row-by-row OutputCsvFile.writerow([cell.value for cell in eachrow])
输出
执行上述程序后,将创建一个名为ResultCsvFile.csv的新CSV文件,其中包含Excel的数据。
在这个程序中,我们有一个带有一些随机虚拟数据的Excel文件,我们将其作为一个 openpyxl 的工作表加载并设置为使用active属性。然后,我们创建了一个新的CSV文件并以写入模式打开它,然后我们逐行遍历Excel文件并将数据复制到新创建的CSV文件中。
结论
在本教程中,我们学习了如何读取Excel文件并将其转换为 openpyxl 工作簿,然后如何将其转换为CSV文件并删除索引,最后如何将CSV文件转换为pandas数据框。