天天看點

Pandas如何将多個Dataframe格式資料放入一個Excel或csv中

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')