Python 如何根据行减去两个dfs?
假设您有以下两个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
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 Trynp.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)