Reproduced code :
import numpy as np
import pandas as pd
# Create a Dataframe
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)
These above three data frame which has same columns but different rows , need to written in same excel sheet one below other . Expected Output as shown below.

Note: No of dataframe may vary
Here is one way to do this:
dfs = [df1, df2, df3]
startrow = 0
with pd.ExcelWriter('output.xlsx') as writer:
for df in dfs:
df.to_excel(writer, engine="xlsxwriter", startrow=startrow)
startrow += (df.shape[0] + 2)
Alternatively, if you want a single header at the top of the sheet:
dfs = [df1, df2, df3]
with pd.ExcelWriter('output.xlsx') as writer:
dfs[0].to_excel(writer, engine="xlsxwriter", startrow=0)
startrow = dfs[0].shape[0] + 2
for df in dfs[1:]:
df.to_excel(writer, engine="xlsxwriter", startrow=startrow, header=False)
startrow += (df.shape[0] + 2)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With