python - Pandas :如何更新数据框并附加新条目?

标签 python python-3.x pandas

<分区>

使用 Pandas =1.1.5。我想将值从 df2 更新到 df1。但是 df2 有新索引,当我使用更新时,这些索引不会附加到 df1。详情见下文。谢谢

df1

      | Revenue |  Profit   | Sales |
0      |  100    |  300      |  1    |
1      |  500    |  900      |  3    |
2      |  200    |  100      |  4    |

df2

       | Sales |
0       | 10   |
6       |  12    |

期望的 df

      | Revenue |  Profit   | Sales |
0      |  100    |  300      |  10    |
1      |  500    |  900      |  3    |
2      |  200    |  100      |  4    |
6      |  Nan    |  Nan      |  12   |

df 来自使用更新

df1.update(df2)

      | Revenue |  Profit   | Sales |
0      |  100    |  300      |  10    |
1      |  500    |  900      |  3    |
2      |  200    |  100      |  4    |

最佳答案

不幸的是,update方法在加入方法方面有些限制(未实现)(join 参数只能是 "left")。

因此,您必须同时使用updateconcat:

import pandas as pd

df1 = pd.DataFrame({'Revenue': [100,5000,200], 'Profit': [300,900,100], 'Sales': [1,3,4]})
df2 = pd.DataFrame({'Sales': [10,12]}, index=[0,6])

df1.update(df2, overwrite=True)
to_be_added = df2.loc[df2.index.difference(df1.index)]
dd = pd.concat([df1, to_be_added])

结果:

   Revenue  Profit  Sales
0    100.0   300.0   10.0
1   5000.0   900.0    3.0
2    200.0   100.0    4.0
6      NaN     NaN   12.0

关于python - Pandas :如何更新数据框并附加新条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69503888/

相关文章:

python - Conda PackageNotFoundError - 无法安装包

python - 对象类的描述符 __class__ 的 __get__ 未按预期返回

python-3.x - cv2.error : OpenCV(4. 0.0) (-215 :Assertion failed) ! _src.empty() 在函数 'cv::cvtColor' 中

python - 比较两个列表中的元素

python - 在一个维度上查找 pandas 数据框中相同项目的连贯组

python - Pandas 日期时间列操作

python - 如何将 Pandas 数据框传递给分布式工作人员?

python - ProcessPoolExecutor 中的 ThreadPoolExecutor

python - 如何在 Python 的同一文件中的另一个函数中调用一个函数?

python - HTTP 错误 404 : Not Found when starting up pdfbox