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