python - 减去两个索引不重叠的 DataFrame

标签 python pandas dataframe subtraction

我正在尝试将两个 DataFrame 相减。我想将缺失值视为 0。fillna() 在这里不起作用,因为在进行减法之前我不知道公共(public)索引:

import pandas as pd

A = pd.DataFrame([1,2], index=['a','b'])
B = pd.DataFrame([3,4], index=['a','c'])
A - B

    0
a  -2
b NaN
c NaN

理想情况下,我希望:

A - B

    0
a  -2
b   2
c  -4

是否有可能在保持代码简单的同时实现这一目标?

最佳答案

您可以使用 subtract 方法并指定一个 fill_value 为零:

A.subtract(B, fill_value=0)

注意:下面的方法,combineAddis deprecated从 0.17.0 开始

一种方法是使用combineAdd方法将-B添加到A:

>>> A.combineAdd(-B)
   0
a -2
b  2
c -4

使用此方法,添加两个 DataFrame,并且不匹配索引处的值默认为 AB 中的值。

关于python - 减去两个索引不重叠的 DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28421137/

相关文章:

python - 查找 QTreeView 列中文本的第一次出现

python - 从 pandas 数据帧生成自定义 JSON 格式输出

python-3.x - 为什么合并不相等匹配的行不适用于本地数据集?

r - 将data.frame中的列堆叠成R中的一列

python - 收集包元数据 (repodata.json) :/Killed

python - 是否可以在 Gtk 中更改单选按钮颜色?

python - 问题在 Python 中运行程序 (R) 以执行操作(执行脚本)

python - Pandas 合并两个具有相同结构的数据框

python - 在 Pandas 中获取虚拟变量,其中行包含多个变量作为列表?

python - 如何在 Python 中创建日期时间使用跟踪器?