python - Python:如何将数据框导出到现有 Excel 工作表但不创建新工作表
问题描述
我想将我的数据框导出到 Python 中现有 Excel 工作表中的指定列,我尝试了不同的方法,但它们不起作用。我已经导出df1
到一个名为“IR delta”的 excel 表,现在我想导出df2
到与df1
运行一些代码生成df2
. 但是,创建了 excel 表“IR delta1”,而不是导出相同的表“IR delta”。有人可以帮忙吗?非常感谢!
df1
Qualifier Currency Risk Group Delta Concentration threshold (USD/bp) CR
0 AUD Regular volatility, less well-traded 41000000 1.0
1 CHF Regular volatility, less well-traded 41000000 1.0
2 CNY High volatility 31000000 1.0
3 EUR Regular volatility, well-traded 220000000 1.0
df2
Qualifier Curve Tenor RiskType Risk Weight CR WS
0 AUD Libor3m 1m Risk_IRCurve 107 1 2.140000e+08
1 AUD Libor3m 2y Risk_IRCurve 53 1 -1.060000e+08
2 AUD Libor3m 6m Risk_IRCurve 71 1 2.130000e+08
3 CHF Libor6m 15y Risk_IRCurve 50 1 -2.000000e+08
4 CHF Libor6m 20y Risk_IRCurve 54 1 5.400000e+08
5 CHF Libor6m 30y Risk_IRCurve 63 1 7.560000e+08
请在下面查看我的代码:
writer = pd.ExcelWriter(Results, engine = 'openpyxl')
writer.book = book
df1.to_excel(writer, sheet_name='IR delta', startrow=0, index=False)
writer.save()
writer.close()
此时我已导出df1
到 Excel 表“IR delta”。现在我想导出df2
到同一张工作表但不创建新工作表。然而df2
被导出到工作表“IR delta1”。
book = load_workbook(Results)
writer = pd.ExcelWriter(Results, engine = 'openpyxl')
writer.book = book
df2.to_excel(writer, sheet="IR delta", startrow=0, startcol= 10, index=False)
解决方案
import pandas as pd
只需使用merge()
方法:-
masterdf=df2.merge(df1,on=['Qualifier','CR'])
注意:-如果 CR 列不同,即两个数据帧中的 CR 列不同。请使用以下代码:-
masterdf=df2.merge(df1,on='Qualifier',suffixes=['_df1','df_2'])
现在保存masterdf
:-
writer = pd.ExcelWriter(Results, engine = 'openpyxl')
writer.book = book
masterdf.to_excel(writer, sheet_name='IR delta', startrow=0, index=False)
writer.save()
writer.close()
推荐阅读
- regex - 正则表达式:接受但不捕获模式
- python - ImportError:使用 pytest 进行测试时无法导入名称“transfer_markers”
- c# - Firestore 枚举兼容性
- mysql - 从 MySQL 安装程序下载 MySQL 服务器时失败
- html - 单击 boostrap 选项卡中的查看详细信息按钮时,项目显示页面无法正常工作
- python - 如何解决“加载原生 TensorFlow 运行时失败”?
- msbuild - Visual Studio 扩展构建失败并出现错误 VSSDK1077:无法找到扩展目录。"值不能为空
- c - 从结构的动态数组中删除元素时的未定义行为
- r - RSelenium:阻止网站在 Chrome 中显示通知
- angular - Angular 5:不使用 ngFor 属性进行渲染