如何将 Pandas DataFrame 附加到现有 Excel 工作表而不覆盖数据?
Dec 03, 2024 pm 03:02 PM使用 Python Pandas 将新数据框附加到现有 Excel 工作表
挑战:
将新数据框附加到数据框的末尾现有的 Excel 工作表而不覆盖现有的data.
解决方案:
在 Pandas 版本 1.4.0 之前,追加到现有 Excel 工作表需要手动将新数据的索引与现有工作表匹配并将其保存回来。
改进的熊猫解决方案>= 1.4.0:
Pandas 1.4.0 及更高版本在 ExcelWriter 函数中包含“覆盖”选项,允许附加到现有工作表而不覆盖现有内容。
appended_data.to_excel(os.path.join(newpath, 'master_data.xlsx'), sheet_name='Sheet1', mode='a', if_sheet_exists='overlay')
登录后复制
熊猫的替代解决方案 1.4.0:
def append_df_to_excel(filename, df, sheet_name='Sheet1', startrow=None, **to_excel_kwargs): """ Append a DataFrame [df] to existing Excel file [filename] into [sheet_name] Sheet. If [filename] doesn't exist, then this function will create it. """ writer = pd.ExcelWriter(filename, engine='openpyxl', mode='a') if sheet_name in writer.book.sheetnames: # try to open an existing workbook writer.book = load_workbook(filename) # truncate sheet if startrow is None and sheet_name in writer.book.sheetnames: startrow = writer.book[sheet_name].max_row # index of [sheet_name] sheet idx = writer.book.sheetnames.index(sheet_name) # remove [sheet_name] writer.book.remove(writer.book.worksheets[idx]) # create an empty sheet [sheet_name] using old index writer.book.create_sheet(sheet_name, idx) # copy existing sheets writer.sheets = {ws.title: ws for ws in writer.book.worksheets} else: # file doesn't exist, we are creating a new one startrow = 0 # write out the DataFrame to an ExcelWriter df.to_excel(writer, sheet_name=sheet_name, **to_excel_kwargs) writer.close() writer.save() appended_data.to_excel(os.path.join(newpath, 'master_data.xlsx'), sheet_name='Sheet1', mode='a', if_sheet_exists='overlay')
登录后复制
示例:
import pandas as pd # Existing data existing_df = pd.DataFrame({ 'Name': ['John', 'Mary', 'Bob'], 'Age': [20, 25, 30] }) # New data to append new_df = pd.DataFrame({ 'Name': ['Alice', 'Tom'], 'Age': [35, 40] }) append_df_to_excel('master_data.xlsx', new_df, sheet_name='Sheet1', startrow=existing_df.shape[0] + 1)
登录后复制
其他注意事项:
- 您可以使用startrow指定追加的起始行参数。
- 您可以将其他关键字参数传递给 to_excel_kwargs 字典中的 to_excel() 方法。
- 此解决方案应该适用于所有版本的 Pandas,无论使用什么 Excel 引擎(例如、xlrd、openpyxl)。
以上是如何将 Pandas DataFrame 附加到现有 Excel 工作表而不覆盖数据?的详细内容。更多信息请关注PHP中文网其他相关文章!
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章
击败分裂小说需要多长时间?
3 周前
By DDD
仓库:如何复兴队友
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
公众号网页更新缓存难题:如何避免版本更新后旧缓存影响用户体验?
3 周前
By 王林
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前
By 尊渡假赌尊渡假赌尊渡假赌

热门文章
击败分裂小说需要多长时间?
3 周前
By DDD
仓库:如何复兴队友
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
公众号网页更新缓存难题:如何避免版本更新后旧缓存影响用户体验?
3 周前
By 王林
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前
By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)