pandas追加写入excel_pandas写入sheet而不覆盖原有sheet

python 解决使用pandas df.to_excel()删除原有sheet

一、问题引入

你在使用pandas的 df.to_excel(file_path)想要对一个有多张sheet的workbook操作时一定会尴尬的发现:永远只存在最后一次写进去的表,其他的都被清空了。

二、解决办法

1.使用pandas

 1import pandas as pd
 2import openpyxl 
 3import xlwings as xw
 4
 5book = openpyxl.load_workbook(wb_file)   #读取你要写入的workbook
 6#和pd.read_excel() 用于将Dataframe写入excel。xls用xlwt。xlsx用openpyxl
 7writer = pd.ExcelWriter(wb_file, engine='openpyxl')   
 8##此时的writer里还只是读写器. 然后将上面读取的book复制给writer  
 9writer.book = book
10#转化为字典的形式
11writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
12#将data写入writer
13data.to_excel(writer,sheet_name="",index=False)
14writer.save()

2.使用xlwings、openpyxl等包

先用pandas读取dataframe,然后将df写入使用xlwings新建的sheet中

 1import xlwings as xw
 2
 3#读取df
 4df = pd.read_excel(file_path_df)
 5wb = xlwings.Book(file_path_excel)
 6#在wb中新建一张新的sheet.可以指定位置
 7sht = wb.sheets.add(name="",before=None,after=None)
 8#df.values 不然会插入df的索引
 9sht.range("A1").value = df.values
10wb.save()
11wb.close()
可以使用pandas库来实现在现有Excel文件中追加写入数据的操作。有几种方法可以实现这个目标。 方法一:使用append() 首先,先将Excel文件中原有数据读取出来,然后创建一个新的DataFrame对象,将要追加数据添加到这个DataFrame中,再将新的DataFrame与原有数据合并起来,最后将合并后的数据保存回Excel文件中。 ```python import pandas as pd # 读取Excel原有数据 original_data = pd.read_excel('excel追加.xlsx') # 创建新的数据 data2 = {'city': ['北京', '上海', '广州', '深圳'], '2018': ['a', 'b', 'c', 'd']} data2 = pd.DataFrame(data2) # 将新数据原有数据合并 save_data = original_data.append(data2) # 将合并后的数据保存回Excel文件 save_data.to_excel('excel追加.xlsx', index=False) ``` 方法二:使用ExcelWriter 使用pandas.ExcelWriter可以方便地将多个DataFrame写入不同的sheet中。首先,创建一个ExcelWriter对象,然后将需要写入的DataFrame对象逐个写入不同的sheet中,最后保存并关闭ExcelWriter对象。 ```python import pandas as pd # 创建ExcelWriter对象 writer = pd.ExcelWriter('your_path.xlsx') # 创建多个DataFrame对象 df1 = pd.DataFrame() df2 = pd.DataFrame() # 将DataFrame写入不同的sheet中 df1.to_excel(writer, sheet_name='Sheet1', index=False) df2.to_excel(writer, sheet_name='Sheet2', index=False) # 保存并关闭ExcelWriter对象 writer.save() writer.close() ``` 以上是两种常用的pandas追加写入Excel的方法,你可以根据具体需求选择使用哪种方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Python | Pandas如何追加写入Excel](https://blog.csdn.net/weixin_44623587/article/details/126070316)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [pandas分别写入excel的不同sheet方法](https://download.csdn.net/download/weixin_38632825/14912602)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值