您的位置:

Dataframe如何实现Excel写入

一、安装所需库

在使用Dataframe写入Excel格式之前,需要安装pandas库和openpyxl库。

二、导入数据到Dataframe

首先,需要将要写入Excel的数据导入到Dataframe中。导入数据有多种方式,可以手动创建Dataframe,也可以通过读取Excel、CSV等文件格式来导入。下面举例,通过手动创建Dataframe的方式来演示:

import pandas as pd

data = {'学号': ['001', '002', '003', '004', '005'],
        '姓名': ['张三', '李四', '王五', '赵六', '刘七'],
        '班级': ['一班', '二班', '三班', '一班', '二班'],
        '语文': [85, 89, 90, 92, 95],
        '数学': [92, 88, 85, 90, 87],
        '英语': [80, 87, 88, 92, 90]}

df = pd.DataFrame(data)

上述代码创建了一个包含6列数据的Dataframe。其中,每一列的列名分别为“学号”、“姓名”、“班级”、“语文”、“数学”和“英语”,每一行分别对应了一位学生的信息。

三、导出Dataframe到Excel

1. 默认写入Excel

使用Dataframe的to_excel()方法,可以将Dataframe导出到Excel中。以下代码演示了如何将上述Dataframe导出到“score.xlsx”文件中:

df.to_excel('score.xlsx')

默认情况下,to_excel()方法将Dataframe的每一列写入到Excel的一个工作表中,工作表的名称默认为“Sheet1”。

2. 写入指定工作表

通过指定参数“sheet_name”,可以将Dataframe写入到指定的工作表中。以下代码演示了如何将Dataframe导出到Excel文件“score.xlsx”中的工作表“Sheet2”中:

df.to_excel('score.xlsx', sheet_name='Sheet2')

3. 写入多个工作表

通过多次调用to_excel()方法,可以将多个Dataframe写入到一个Excel文件中的不同工作表中。以下代码演示了如何将上述Dataframe和一个新的Dataframe(分数表)分别写入到Excel文件“score.xlsx”中的两个工作表中:

df1 = pd.DataFrame({'学号': ['001', '002', '003', '004', '005'],
                     '考试时间': ['2021-01-01', '2021-01-02', '2021-01-03', '2021-01-04', '2021-01-05']})
writer = pd.ExcelWriter('score.xlsx')
df.to_excel(writer, sheet_name='学生成绩')
df1.to_excel(writer, sheet_name='考试信息')
writer.save()

上述代码首先创建了一个新的Dataframe,名为df1,包含了每位学生的考试时间信息。然后,通过使用pd.ExcelWriter()方法创建一个ExcelWriter对象,将两个Dataframe都写入到该对象中。最后通过save()方法将对象中的内容写入到Excel文件中。

4. 写入Excel指定位置

在使用to_excel()方法导出Dataframe到Excel文件中时,可以通过使用ExcelWriter对象将Dataframe写入到指定位置。

首先,需要通过openpyxl库中的load_workbook()方法加载Excel文件。以下代码演示了如何将上述Dataframe写入Excel文件“score.xlsx”中的工作表“Sheet1”中的第二行第一列(即B2)的位置:

from openpyxl import load_workbook

book = load_workbook('score.xlsx')
writer = pd.ExcelWriter('score.xlsx', engine='openpyxl') 
writer.book = book 
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
df.to_excel(writer, sheet_name='Sheet1', startrow=1, startcol=0)
writer.save()

在使用openpyxl库中的load_workbook()方法加载Excel文件之后,需要通过设置“engine”参数为“openpyxl”,将ExcelWriter对象的book属性指定为已加载的Excel文件,并将其sheets属性设置为Excel文件中的所有工作表。之后,通过指定参数“startrow”和“startcol”,可以将Dataframe写入到指定位置。