使用 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中文网其他相关文章!

2小时内可以学会Python的基本编程概念和技能。1.学习变量和数据类型,2.掌握控制流(条件语句和循环),3.理解函数的定义和使用,4.通过简单示例和代码片段快速上手Python编程。

Python在web开发、数据科学、机器学习、自动化和脚本编写等领域有广泛应用。1)在web开发中,Django和Flask框架简化了开发过程。2)数据科学和机器学习领域,NumPy、Pandas、Scikit-learn和TensorFlow库提供了强大支持。3)自动化和脚本编写方面,Python适用于自动化测试和系统管理等任务。

两小时内可以学到Python的基础知识。1.学习变量和数据类型,2.掌握控制结构如if语句和循环,3.了解函数的定义和使用。这些将帮助你开始编写简单的Python程序。

如何在10小时内教计算机小白编程基础?如果你只有10个小时来教计算机小白一些编程知识,你会选择教些什么�...

使用FiddlerEverywhere进行中间人读取时如何避免被检测到当你使用FiddlerEverywhere...

Python3.6环境下加载Pickle文件报错:ModuleNotFoundError:Nomodulenamed...

如何解决jieba分词在景区评论分析中的问题?当我们在进行景区评论分析时,往往会使用jieba分词工具来处理文�...

如何使用正则表达式匹配到第一个闭合标签就停止?在处理HTML或其他标记语言时,常常需要使用正则表达式来�...


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Atom编辑器mac版下载
最流行的的开源编辑器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

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

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境