如何在Python中将Excel转换为CSV


在本文中,我们将向您展示如何使用Python将Excel文件转换为CSV文件(逗号分隔值)。

假设我们有一个名为sampleTutorialsPoint.xlsx的Excel文件,其中包含一些随机文本。我们将转换该Excel文件并返回一个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

方法一:使用Pandas模块将Excel转换为CSV

算法(步骤)

以下是执行所需任务的算法/步骤:

  • 导入pandas模块(Pandas是一个Python开源数据处理和分析包)

  • 创建一个变量来存储输入Excel文件的路径。

  • 使用pandas read_excel() 函数读取给定的Excel文件内容(将Excel文件对象读取到数据框对象中)。

  • 使用to_csv() 函数将Excel文件转换为CSV文件(将对象转换为CSV文件),并将输出Excel文件名、index设置为None,header设置为true作为参数。

  • 使用read_csv() 函数读取输出CSV文件(将CSV文件加载为pandas数据框),并使用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。如果我们将index作为false参数传递,则最终的CSV文件不会在开头包含索引行。然后我们将CSV转换为数据框,以查看Excel文件中的值是否已复制到CSV文件中。

方法二:使用openpyxl和CSV模块将Excel转换为CSV

算法(步骤)

以下是执行所需任务的算法/步骤:

  • 使用import关键字导入openpyxlOpenpyxl 是一个用于与Excel文件交互和管理的Python包。支持Excel 2010及更高版本的文件,扩展名为xlsx/xlsm/xltx/xltm。数据科学家使用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])

输出

执行上述程序将创建一个新的CSV文件(ResultCsvFile.csv),其中包含Excel的数据。

在这个程序中,我们有一个包含一些随机虚拟数据的Excel文件,我们将其加载为openpyxl工作簿并使用active属性进行设置。然后我们创建了一个新的CSV文件并以写入模式打开它,然后我们逐行遍历Excel文件并将数据复制到新创建的CSV文件中。

结论

在本教程中,我们学习了如何读取Excel文件并将其转换为openpyxl工作簿,然后如何将其转换为CSV文件并删除索引,最后如何将CSV文件转换为pandas数据框。

更新于:2023年8月29日

27K+ 次浏览

启动您的职业生涯

完成课程后获得认证

开始学习
广告
© . All rights reserved.