1,dataframe 寫入excel:
多個dataframe需要寫入同一個excel時,每次使用df.to_excel(文件名)的形式去寫,系統都會重新創建一個新的文件。也就意味着前面的文件會被覆蓋掉,你得到的只能是最後一個df寫入的結果文件
通過創建一個ExcelWriter對象,可以解決上面的問題
writer = pd.ExcelWriter(os.path.join(os.getcwd(), '自定義.xlsx'))
df1.to_excel(writer, sheet_name='自定義sheet_name')#startcol=**, startrow=**)
df2.to_excel(writer, sheet_name='自定義sheet_name')#startcol=**, startrow=**)
df3.to_excel(writer, sheet_name='自定義sheet_name')#startcol=**, startrow=**)
...
writer.save()# 寫入硬盤
# 不傳sheet_name參數時,默認多個dataframe會寫入同一個xlsx文件的同一個sheet裏
# 不傳sheet_name參數時,多個dataframe會寫入同一個xlsx文件的不同sheet裏
# startrow, startcol 不傳時默認dataframe在excel裏在sheet1裏其實行列都是一,
# 需注意,python和excel的索引起始數字不同,如果startrow=2, startcol=4,不是從第二行第四列開始寫,而是從第三行第五列開始寫
2,dataframe寫入html:
多個dataframe需要寫入同一個html時:
HEADER = '''
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
'''
FOOTER = '''
</body>
</html>
'''
with open(os.path.join(os.getcwd(), '自定義文件名.html'), 'w') as f:
f.write(HEADER)
for df in [df1, df2, df3...]:
#f.write('<h1><strong>' + '自定義dataframe名' +'</strong></h1>')
f.write(df.to_html(classes='自定義classname'))
f.write(FOOTER)