在Python中将多个数据框写入同一Excel工作表中,一个接一个地写入。

30 浏览
0 Comments

在Python中将多个数据框写入同一Excel工作表中,一个接一个地写入。

复制的代码:

import numpy as np 
import pandas as pd
# 创建一个数据框
df1 = pd.DataFrame(np.random.rand(8).reshape(4,2),columns=['X','Y']);print(df1.shape)
df2 = pd.DataFrame(np.random.rand(6).reshape(3,2),columns=['X','Y']);print(df2.shape)
df3 = pd.DataFrame(np.random.rand(10).reshape(5,2),columns=['X','Y']);print(df3.shape)

这三个数据框具有相同的列但不同的行,需要将它们写在同一个Excel工作表中,一个在另一个下面。预期输出如下所示。

DataFrame in single sheet one below other

注意:数据框的数量可能会有所变化。

0
0 Comments

在Python中,将多个数据框写入同一个Excel工作表的一个常见问题是,在每个数据框之间都会出现表头。想要在生成的工作表顶部添加一个单一的表头,可以使用以下解决方法:

首先,创建一个包含要写入Excel的数据框的列表,例如df1,df2和df3。然后,使用pandas库的ExcelWriter方法创建一个名为output.xlsx的Excel写入器对象。

接下来,使用for循环遍历数据框列表。在每次迭代中,使用to_excel方法将当前数据框写入Excel中。在此方法中,通过设置engine参数为"xlsxwriter",可以使用xlsxwriter引擎进行写入操作。同时,通过设置startrow参数为当前的起始行数startrow,可以控制每个数据框的写入位置。

在第一个解决方法中,通过在每个数据框的写入之前,使用startrow变量作为startrow参数的值来逐步增加起始行数。这样,每个数据框都会被写入到前一个数据框的下方。

在第二个解决方法中,首先将第一个数据框写入Excel,并将其表头放在起始行0的位置。然后,将startrow变量设置为第一个数据框的行数加2,这样可以保留一行空白行作为分隔。接下来,使用一个for循环迭代剩余的数据框,并将它们写入Excel,设置startrow参数为当前的起始行数startrow,并将header参数设置为False,以防止每个数据框都有表头。

这样,通过设置header参数为False,并在迭代过程中逐渐增加起始行数,就可以在生成的工作表中只有一个单一的表头。

希望这个解决方法对您有帮助!

0