gpt4 book ai didi

python - 将字典保存到 .XLSX

转载 作者:行者123 更新时间:2023-12-04 09:56:11 25 4
gpt4 key购买 nike

使用 Python + Pandas,是否有一种快速简便的方法将 Dict(由键的文件名和值的几列数据组成)保存到 .XLSX 文件中?

经过一些研究,我尝试使用以下代码将其转换为 Pandas DataFrame(因为我知道您可以从 Pandas DataFrame 写入 .XLSX 文件):

import pandas as pd
import glob
f_list = glob.glob("C:\\Users\\me\\dt\\xx\\*.xlsx")

sheets = {f: pd.read_excel(f) for f in f_list}
new_df = pd.DataFrame.from_dict(sheets, orient = "index")
new_df.to_excel("ALL_RUCDR_DATA.xlsx")

但是我得到这个错误:

TypeError: Unsupported type (class 'pandas.core.frame.DataFrame') in write().

我知道它会成功创建字典,而且它似乎创建了DataFrame,但为什么它不会创建文件?

最佳答案

docs建议您使用以下方法执行此操作:

with pd.ExcelWriter('path_to_file.xlsx') as writer:
for (sheet_name, df) in sheets.items():
df.to_excel(writer, sheet_name=sheet_name)

错误发生是因为 from_dict 在 DataFrames 的字典上创建了一个奇怪的 DataFrame,其中每个元素都是一个 DataFrame:

In [11]: sheets = {"a": pd.DataFrame([[1]], columns=["A"]), "b": pd.DataFrame([[2], [3]], columns=["B"])}

In [12]: pd.DataFrame.from_dict(sheets, orient='index')
Out[12]:
0
b B
0 2
1 3
a A
0 1

In [13]: pd.DataFrame.from_dict(sheets, orient='index').applymap(type)
Out[13]:
0
b <class 'pandas.core.frame.DataFrame'>
a <class 'pandas.core.frame.DataFrame'>

这不会映射到 Excel 工作表,因为它需要单个值(例如 int/float/string)作为元素。

如果您想将字典中的数据合并/连接/合并到一个文件中,请查看 merging section of the docs (从 pandas DataFrames 而不是电子表格的角度来考虑这一点)。

关于python - 将字典保存到 .XLSX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33046552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com