下面为你详细讲解“教你用python将数据写入Excel文件中”的完整实例教程。
1. 准备工作
首先,我们需要安装两个库来实现将数据写入Excel的功能,分别是pandas
和openpyxl
。我们可以通过在命令行中执行以下两个命令来进行安装:
pip install pandas
pip install openpyxl
2. 创建Excel文件
接下来,我们需要创建一个Excel文件,并且添加一个工作表。可以通过以下代码来实现:
import pandas as pd
# 创建一个新的Excel文件
writer = pd.ExcelWriter('example.xlsx', engine='openpyxl')
# 加载已存在的Excel文件并创建一个可写的副本
# writer = pd.ExcelWriter('existing_file.xlsx', engine='openpyxl')
# 添加一个名为Sheet1的工作表
writer.book.create_sheet('Sheet1', 0)
# 关闭Excel文件
writer.save()
在上述代码中,我们首先导入了pandas
库,并通过ExcelWriter
方法创建了一个名为example.xlsx
的新Excel文件。如果你已经有一个现有的Excel文件想写入数据,可以采用注释内容的代码部分。
然后,我们通过create_sheet
方法添加了一个名为Sheet1
的工作表,并通过writer.save()
方法保存了Excel文件。
3. 将数据写入Excel文件
有了Excel文件和工作表之后,我们就可以开始将数据写入文件了。下面是一个常用的将Pandas DataFrame写入Excel的方法:
import pandas as pd
# 读取数据
data = pd.read_csv('data.csv')
# 创建一个新的Excel文件
writer = pd.ExcelWriter('example.xlsx', engine='openpyxl')
# 在指定工作表中写入数据
data.to_excel(writer, sheet_name='Sheet1', index=False)
# 关闭Excel文件
writer.save()
在上述代码中,我们首先使用pandas
库的read_csv
方法读入了一个名为data.csv
的数据文件。
然后,我们通过ExcelWriter
方法创建了一个名为example.xlsx
的新Excel文件,并通过to_excel
方法将读入的数据写入了名为Sheet1
的工作表中。其中,index=False
表示在写入文件时不包含DataFrame的索引。最后,我们通过writer.save()
方法保存了Excel文件。
示例1
为了更好地理解代码,这里还有一个示例。如下代码表示将一个Python列表的数据写入到Excel中:
import pandas as pd
# 要写入Excel的数据
data = [
['Tim', 18, 'Male'],
['Tom', 22, 'Male'],
['Lucy', 19, 'Female'],
['Lily', 20, 'Female']
]
# 创建一个Pandas DataFrame
df = pd.DataFrame(data, columns=['Name', 'Age', 'Gender'])
# 创建一个新的Excel文件
writer = pd.ExcelWriter('example.xlsx', engine='openpyxl')
# 在指定工作表中写入数据
df.to_excel(writer, sheet_name='Sheet1', index=False)
# 关闭Excel文件
writer.save()
在上述示例中,我们定义了一个名为data
的Python列表,表示要写入Excel中的数据。通过pandas
库的DataFrame
方法将数据转化为Pandas DataFrame
对象,然后使用to_excel
方法将数据写入到Sheet1
工作表中。
示例2
下面给出一个使用pandas和openpyxl实现多次写入功能的示例。
import pandas as pd
from openpyxl import Workbook
import os
# 定义写入excel的日期格式
date_format = 'YYYY-MM-DD'
# 创建可写入多个工作表的空的Excel文件
wb = Workbook()
# 通过openpyxl的worksheets方法创建工作表
ws1 = wb.worksheets[0]
ws2 = wb.create_sheet('Sheet2')
ws3 = wb.create_sheet('Sheet3')
# 把数据写入第一个工作表ws1
df1 = pd.DataFrame({"name": ['Alice', 'Bob', 'Charlie'], "age": [25, 30, 35]})
ws1['A1'].value = 'Name'
ws1['B1'].value = 'Age'
for index, row in df1.iterrows():
ws1.cell(row=index + 2, column=1).value = row['name']
ws1.cell(row=index + 2, column=2).value = row['age']
# 把数据写入第二个工作表ws2
df2 = pd.DataFrame({"date": ['2022-01-01', '2022-02-01', '2022-03-01'], "value": [100, 200, 300]})
ws2['A1'].value = 'Date'
ws2['B1'].value = 'Value'
for index, row in df2.iterrows():
ws2.cell(row=index + 2, column=1).value = row['date']
ws2.cell(row=index + 2, column=2).value = row['value']
ws2.cell(row=index + 2, column=1).number_format = date_format
# 把数据写入第三个工作表ws3
df3 = pd.DataFrame({"id": [1, 2, 3, 4], "name": ['Alice', 'Bob', 'Charlie', 'David'], "gender": ['F', 'M', 'M', 'M']})
ws3['A1'].value = 'ID'
ws3['B1'].value = 'Name'
ws3['C1'].value = 'Gender'
for index, row in df3.iterrows():
ws3.cell(row=index + 2, column=1).value = row['id']
ws3.cell(row=index + 2, column=2).value = row['name']
ws3.cell(row=index + 2, column=3).value = row['gender']
# 保存Excel文件
wb.save(os.path.join(os.getcwd(), 'example.xlsx'))
在上述示例中,我们首先通过openpyxl
的Workbook
方法创建了一个可写入多个工作表的Excel文件,并通过create_sheet
方法创建了三个工作表。使用pandas
库的DataFrame
方法,我们分别定义了三个DataFrame对象df1
、df2
和df3
, 然后通过循环遍历DataFrame,并分别将数据写入到三个工作表中。注意到我们还添加了日期格式的设置。
最后,我们通过save
方法将数据保存到名为example.xlsx
的excel文件中。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:教你用python将数据写入Excel文件中 - Python技术站