当前位置: 首页 > 知识库问答 >
问题:

Python:如何将dataframe导出到现有Excel工作表,但不创建新工作表

梁楷
2023-03-14

我想用Python将我的数据帧导出到现有Excel工作表中的指定列,我尝试了不同的方法,但都不起作用。我已经将df1导出到一个名为“IR delta”的excel工作表中,现在我想在运行一些代码生成df2后,将df2导出到与df1相同的工作表中。但是,将创建excel工作表“IR delta 1”,而不是导出同一工作表“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)

共有1个答案

夏奕
2023-03-14
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()
 类似资料:
  • 我试图将列表数据写入一个工作簿中的多个excel表格。与第一个列表一样,代码将创建新工作簿并为列表[1]创建新工作表,对于第二个列表,它将在现有工作簿中创建新工作表,依此类推。所以我写了下面的代码。但是它不起作用,我只能看到列表[1]的第一页。有人能帮我提供任何替代解决方案吗? 下面我写的代码 谢谢,Priyank Shah

  • 通过itertuples,我需要将位于excel列(“G7”、“G8”)两行中的两个数据导出到google工作表的两列中。我该怎么做? 最后一行不会更新google表单的第3列

  • 问题内容: 我已经浏览了几乎所有以前的线程,但是仍然无法正常工作。我正在尝试向现有工作簿中添加新工作表。我的代码有效,但是它继续添加更多(实际上很多)工作表。我不知道解决方案。下面是我的代码 问题答案: 如果要向现有电子表格中添加工作表,只需继续并将新工作表添加到文件中,而不是复制对象并尝试向其中添加新工作表。

  • 数据 第一页用于数据输入。每行代表一张服务票。每列将表示有关服务事件的数据,如序列号或型号。 期望的结果 对于包含特定字段(列a ~“票证号”)中数据的每一行,Excel将基于模板创建一个新的工作表(服务票证),并将相应行中的数据放入指定的单元格中。 提前感谢您提供的任何帮助。

  • 我无法使用 apache poi eclipse 在我创建的 java excel 中创建工作表

  • 问题内容: 我有几个要转储为excel工作簿(xls / xlsx)中新工作表的csv文件。我该如何实现? Google搜索并找到“ pyXLwriter”,但该项目似乎已停止。当我尝试“ pyXLwriter”时,我想知道是否有其他选择/建议/模块? 非常感谢。 [编辑] 这是我的解决方案:(任何人都有更精简的pythonic解决方案?请发表评论。thx) 问题答案: 不知道 您 所说的“更精简