Pandas如何将多個Dataframe格式資料放入一個Excel或csv中
最近做項目中,需要用到将多個DataFrame存放在一個資料表excel中
下面上教程
- Frist
首先需要
建立一個空的 Excel 表格。dff = pd.DataFrame(columns=[“title”, “content”])
dff.to_excel(‘SOM_Result.xlsx’)
Second
我這裡是放在一個循環裡面,這樣可以每次自動存進去,真的友善。當然,你也可以封成一個Function直接調用。
df = pd.DataFrame.from_dict(winner, orient='index')
writer = pd.ExcelWriter('SOM_Result.xlsx', engine='openpyxl')
book = load_workbook(writer.path)
writer.book = book
my_df.to_excel(excel_writer=writer, sheet_name=str(SheetNames[i_c]))
writer.save()
writer.close()
注意,如若需要用到循環,第一步建立空資料表的代碼不能放在循環内,這樣每次都會更新空資料表使其覆寫,導緻不能将Dataframe依次存進去。
- Thrid
需要執行将第一步建立的
空Sheet工作簿删除操作
sheet_name1 = 'Sheet1'
# 載入工作簿
workbook = openpyxl.load_workbook('SOM_Result.xlsx')
#
# 删除目标Sheet
worksheet = workbook[sheet_name1]
workbook.remove(worksheet)
# 儲存已做删除處理的工作簿
workbook.save('SOM_Result.xlsx')
到此就實作了多重Dataframe存放到一個資料表Excel檔案中啦。
完整代碼
# 添加庫
import pandas as pd
import openpyxl
from openpyxl import load_workbook
# 1.建立一個空表格excel
dff = pd.DataFrame(columns=["title", "content"])
dff.to_excel('SOM_Result.xlsx')
# 2.存入多個資料Dataframe,此段可使用循環調用
df = pd.DataFrame.from_dict(winner, orient='index')
writer = pd.ExcelWriter('SOM_Result.xlsx', engine='openpyxl')
book = load_workbook(writer.path)
writer.book = book
my_df.to_excel(excel_writer=writer, sheet_name=str(SheetNames[i_c]))
writer.save()
writer.close()
# 3.openpyxl删除第一個空的sheet工作簿
# 删除空表頭Sheet1
# 執行删除操作:
sheet_name1 = 'Sheet1'
# 載入工作簿
workbook = openpyxl.load_workbook('SOM_Result.xlsx')
#
# 删除目标Sheet
worksheet = workbook[sheet_name1]
workbook.remove(worksheet)
# 儲存已做删除處理的工作簿
workbook.save('SOM_Result.xlsx')