您的位置:首页 > 财经 > 金融 > 软件培训学校哪家好_摄影网站设计图片_东莞网站建设最牛_重庆seo代理计费

软件培训学校哪家好_摄影网站设计图片_东莞网站建设最牛_重庆seo代理计费

2024/12/27 3:22:18 来源:https://blog.csdn.net/Meggie35/article/details/142254649  浏览:    关键词:软件培训学校哪家好_摄影网站设计图片_东莞网站建设最牛_重庆seo代理计费
软件培训学校哪家好_摄影网站设计图片_东莞网站建设最牛_重庆seo代理计费

我发现,我原来用的多个工作簿存入的方法,发现不太可行,如果我用原来的方法,然后for循环,新的dataframe会把原来的覆盖掉,然后只剩下一个工作薄。原先的代码:

with pd.ExcelWriter(file_name ) as writer:Table.to_excel(writer, sheet_name=sheet_name, index=False) 

当使用for循环的时候,原来的sheet 会被新的表给覆盖掉。先用一堆的dfs来测试一下:

import pandas as pddf1 = pd.DataFrame({'Column1': range(5), 'Column2': range(5, 10)})
df2 = pd.DataFrame({'Column1': range(10, 15), 'Column2': range(10, 15)})
df3 = pd.DataFrame({'Column1': range(20, 25), 'Column2': range(20, 25)})dataframes = []
dataframes.append(df1)
dataframes.append(df2)
dataframes.append(df3)

这里运行完了以后,我们现在有多个dataframe的表,现在需要一个个将他们存入到excel的不同的工作簿中。如果是给上面的方法加一个for循环,【错误示范】!!!!:

file_name="./tese.xlsx"
for i in range(len(dataframes)):Table=dataframes[i]sheet_name ="sheet_"+str(i)with pd.ExcelWriter(file_name ) as writer:Table.to_excel(writer, sheet_name=sheet_name, index=False) 

结果报出来的结果是只有最后一个工作簿!!!多个dataframe也没法全部存进去。
在这里插入图片描述

with pd.ExcelWriter(file_name ) as writer 这段代码表示,pandas创建一个 ExcelWriter 对象,它负责管理写入Excel文件的过程,在我上面的例子中,使用 它来写入数据到file_name 文件里,并将 df DataFrame中的数据写入到这个文件下的,名为sheet_name 的工作表中。

也就是说,我在遍历所有的df,然后反复打开excel,反复存进去。每次修改都是覆盖原来的内容,所以最后,Excel只剩下最新一个df的数据。

逻辑应该是这样的:

  1. 读取excel表 ,把with pd.ExcelWriter(file_name ) as writer写在最外层
  2. 获取多个dataframe遍历(for循环dataframes)!!!
  3. 注意存入的时候,要起好sheet_name。不同的df如果要存入不同的工作簿,就要起不同的sheet_name ,不然还是会覆盖

【正确的改法】:


file_name="./tese.xlsx"
with pd.ExcelWriter( file_name ) as writer:   #读取excel表,写在最外层for i in range(len(dataframes)):  #for循环获取多个dataframe遍历sheet_name ="sheet_"+str(i) #起不同的表名Table=dataframes[i]Table.to_excel(writer, sheet_name=sheet_name, index=False) 

结果:

在这里插入图片描述

或者使用 openpyxl 库的方法。

这需要为每个工作簿创建一个 Worksheet 对象,并将它们保存到同一个工作簿(Workbook)中。
这个方法我没怎么用,如果是比较少工作簿的情况下,确实可以使用,不过我用上面的方法更多一点。

from openpyxl import Workbook# 创建一个新的工作簿
wb = Workbook()# 添加多个工作表
ws1 = wb.active
ws1.title = "Sheet 1"
ws1.append(["Column 1", "Column 2", "Column 3"])  # 添加标题行
ws1.append([1, 2, 3])  # 添加数据行ws2 = wb.create_sheet("Sheet 2")
ws2.append(["Column A", "Column B"])
ws2.append([4, 5])# 可以继续添加更多的工作表...# 保存工作簿
wb.save("multiple_sheets.xlsx")

结果:
在这里插入图片描述在这里插入图片描述

这个方法也可以实现效果,两个表都顺利存入了。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com