Python 如何根据行减去两个dfs?

Python 如何根据行减去两个dfs?,python,pandas,numpy,Python,Pandas,Numpy,假设您有以下两个dfs: lines line amount#1 line amount#2 0 18.20 0.82 1 NaN NaN 2 40.00 259.00 3 388.00 NaN 4 17.41 NaN btws btw-amount#1 btw-amount

假设您有以下两个dfs:

    lines
        line amount#1   line amount#2
        0   18.20        0.82
        1   NaN         NaN
        2   40.00       259.00
        3   388.00       NaN
        4   17.41         NaN





btws

    btw-amount#1    btw-amount#2
    0   0.0          0.14
    1   NaN          NaN
    2   NaN          NaN
    3   NaN          NaN
    4   NaN          NaN
我想减去这两个df,这样就有一个新的df,如下所示:

line amount#1   line amount#2
0   18.20        0.68
1   NaN         NaN
2   40.00       259.00
3   388.00       NaN
4   17.41         NaN
我试过:

lines.subtract(btws, axis =0)
然而,每一件事都变成了“南”


请帮忙

lines.to_numpy()-btws
->键(列)不匹配,因此返回nan。熊猫在索引上对齐。@Max Try
np.subtract(行,BTW)
这也会在减法后保留
中的列名。@ShubhamSharma在这个用例中实际上更好:)谢谢你们的帮助,伙计们:)我建议重新考虑你们的命名。将数据帧命名为
btws
,但每一行中的列都相同,即
的“amount”1“
的“amount”2“
——如果数据帧变量存储该信息,则不需要前缀。然后减法将与一个简单的
df1-df2
对齐,您将拥有现在强制对齐的代码,这与所有其他需要完美对齐的解决方案不同(或引发未来警告,很快它将自动对齐),只需
result=lines-btws.to_numpy()
就可以了。@QuangHoang看起来更有效
result = lines.to_numpy() - btws.to_numpy()
result = pd.DataFrame(result, columns=lines.columns)