编写数据框字典以分隔 Excel 工作表
Posted
技术标签:
【中文标题】编写数据框字典以分隔 Excel 工作表【英文标题】:Write dictionary of dataframes to separate excel sheets 【发布时间】:2019-12-04 04:19:44 【问题描述】:我有一个字典,其中包含“data.csv”中每个状态的数据框。
df=pd.read_csv('data.csv')
dict_of_st = k: v for k, v in df.groupby('Preferred State/Province')
我想将每个数据框写入已存在的工作簿(“test.xlsx”)中的单独 Excel 表中。
我尝试使用 for 循环和load workbook
from openpyxl import load_workbook
book = load_workbook('test.xlsx')
writer = pd.ExcelWriter('test.xlsx', engine='openpyxl')
writer.book = book
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
for i in dict_of_st:
i.to_excel(writer, sheet_name=i)
writer.save()
但是 jupyter notebook 会引发这个错误:
AttributeError Traceback (most recent call last)
<ipython-input-8-c1ba1b4d53d8> in <module>
7
8 for i in dict_of_st:
----> 9 i.to_excel(writer, sheet_name=i)
10
11 writer.save()
AttributeError: 'str' object has no attribute 'to_excel'
【问题讨论】:
【参考方案1】:for x in some_dict
遍历键。您应该显式地遍历返回键值对的items()
:
for df_name, df in dict_of_st.items():
df.to_excel(writer, sheet_name=df_name)
【讨论】:
以上是关于编写数据框字典以分隔 Excel 工作表的主要内容,如果未能解决你的问题,请参考以下文章