gpt4 book ai didi

python - 如何为 for 循环生成的每个数据框写入单独的 Excel 工作表?

转载 作者:行者123 更新时间:2023-12-01 23:47:00 25 4
gpt4 key购买 nike

我有一个由 3 个数字数据帧组成的字典形式的输入数据。我希望通过一些操作遍历每个数据帧,然后最终将每个数据帧的结果写入 excel。

下面的代码工作正常,只是它只为字典中的最后一个键写入结果数据帧。

如何将所有 3 个数据框的结果写入单独的工作表?

Input_Data={'k1':test1,'k2':test24,'k3':test3}

for v in Input_Data.values():

df1 = v[126:236]
df=df1.sort_index(ascending=False)
Indexer=df.columns.tolist()
df = [(pd.concat([df[Indexer[0]],df[Indexer[num]]],axis=1)) for num in [1,2,3,4,5,6]]
df = [(df[num].astype(str).agg(','.join, axis=1)) for num in [0,1,2,3,4,5]]
df=pd.DataFrame(df)
dff=df.loc[0].append(df.loc[1].append(df.loc[2].append(df.loc[3].append(df.loc[4].append(df.loc[5])))))


dff.to_excel('test.xlsx',index=False, header=False)

最佳答案

您的第一个问题是循环的每次迭代都会打开一个新文件。

根据 Pandas documentation :

"Multiple sheets may be written to by specifying unique sheet_name. With all data written to the file it is necessary to save the changes. Note that creating an ExcelWriter object with a file name that already exists will result in the contents of the existing file being erased."

其次,您没有提供可变工作表名称,因此每次数据都被重写为同一张工作表。

示例解决方案,带有 ExcelWriter

#df1, df2, df3 - dataframes
input_data={
'sheet_name1' : df1,
'sheet_name2' : df2,
'sheet_name3' : df3
}

# Initiate ExcelWriter - use xlsx engine
writer = pd.ExcelWriter('multiple_sheets.xlsx', engine='xlsxwriter')

# Iterate over input_data dictionary
for sheet_name, df in input_data.items():

"""
Perform operations here
"""

# Write each dataframe to a different worksheet.
df.to_excel(writer, sheet_name=sheet_name)


# Finally, save ExcelWriter to file
writer.save()

注意 1. 您只需启动并保存 ExcelWriter 对象一次,迭代只会向该对象添加工作表

注意2.相比你的代码,变量“sheet_name”提供给了“to_excel()”函数

关于python - 如何为 for 循环生成的每个数据框写入单独的 Excel 工作表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64031406/

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