如何在Python中将Excel转换为CSV

如何在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数据框。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程