I have multiple pandas dataframes, and hope to write them as one CSV file. What is the most straightforward way?
For example, from following four dataframes,
how can I create below CSV?
Note The dataframes all have the same dimensions.
A very straightforward way would be to concat
pairs horizontally, concat the results vertically, and write it all out using to_csv
:
import pandas as pd
pd.concat([
pd.concat([df1, df2], axis=1),
pd.concat([df3, df4], axis=1)]).to_csv('foo.csv')
A possibly more memory-conserving way would be to write it piecemeal:
with open('foo.csv', 'w') as f:
pd.concat([df1, df2], axis=1).to_csv(f)
with open('foo.csv', 'a') as f:
pd.concat([df3, df4], axis=1).to_csv(f, header=False)
Omitting headers=False
would repeat the headers.
For anyone that needs to append multiple dataframes to same csv vertically, you can use this:
with open('all_dfs.csv','a') as f:
for df in list_of_dfs:
df.to_csv(f)
f.write("\n")
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