标签:Python与Excel,pandas
本文讲解使用Python pandas将多个工作表保存到一个相同的Excel文件中。按照惯例,我们使用df代表数据框架,pd代表pandas。
我们仍将使用df.to_excel()方法,但我们需要另一个类pd.ExcelWriter()的帮助。顾名思义,这个类写入Excel文件。如果仔细阅读pd.to_excel()文档,ExcelWriter实际上是第一个参数。
模拟数据框架
先创建一些模拟数据框架,这样我们就可以使用一些东西了。我们创建了两个数据框架,第一个是20行10列的随机数;第二个是10行1列的随机数。
import pandas as pd
import numpy as np
df_1 = pd.DataFrame(np.random.rand(20,10))
df_2 = pd.DataFrame(np.random.rand(10,1))
我们将介绍两种保存多个工作表的Excel文件的方法。这两种方法的想法基本相同:创建一个ExcelWriter,然后将其传递到df.to_excel()中,用于将数据框架保存到Excel文件中。这两种方法在语法上略有不同,但工作方式相同。
方法1
这是pandas官方文档中演示的方法。
with pd.ExcelWriter(‘mult_sheets_1.xlsx’) as writer1:
df_1.to_excel(writer1,sheet_name = ‘df_1’, index = False)
df_2.to_excel(writer1,sheet_name = ‘df_2’, index = False)
方法2
这是很多人喜欢的一种方法。
writer2 =pd.ExcelWriter(‘mult_sheets_2.xlsx’)
df_1.to_excel(writer2, sheet_name =‘df_1’, index = False)
df_2.to_excel(writer2, sheet_name =‘df_2’, index = False)
writer2.save()
这两种方法的作用完全相同——将两个数据框架保存到一个Excel文件中。然而,其运作机制是完全不同的。
区别
首先,由于方法1中的with块,所有数据框架必须在同一作用域内。这意味着如果你的数据框架不在当前作用域内,则必须首先将其引入。
而对于方法2,数据框架可以在不同的作用域内,并且仍然可以工作。这在代码复杂时特别有用。