Python 基于多索引的两个数据帧相减
我有两个dfs,我想根据多个索引进行减法 利润Python 基于多索引的两个数据帧相减,python,pandas,Python,Pandas,我有两个dfs,我想根据多个索引进行减法 利润 Company Product Amount Google Pixel 2 3000 Microsoft Window 10 4000 Amazon AWS 10000 成本 Company Product Amount Google Pixel 2 10000 Microsoft Window 10 1000 ASUS Router 50000 我想
Company Product Amount
Google Pixel 2 3000
Microsoft Window 10 4000
Amazon AWS 10000
成本
Company Product Amount
Google Pixel 2 10000
Microsoft Window 10 1000
ASUS Router 50000
我想生成一个如下所示的数据帧
差分
Company Product Difference
Google Pixel 2 -7000
Microsoft Window 10 3000
Amazon AWS 10000
ASUS Router -50000
我试过了
profitDf.set_index(['Company','Product']).sub(costDf.set_index(['Company','Product']), fill_value=0).reset_index()
但它显示了NotImplementedError:未实现与两个多索引的合并
感谢您的帮助,因为它是使用
合并的多索引
pdf.merge(cdf,on=['Company','Product'],how='outer').fillna(0).eval('Diff=Amount_x-Amount_y')
Out[205]:
Company Product Amount_x Amount_y Diff
0 Google Pixel2 3000.0 10000.0 -7000.0
1 Microsoft Window10 4000.0 1000.0 3000.0
2 Amazon AWS 10000.0 0.0 10000.0
3 ASUS Router 0.0 50000.0 -50000.0
或者使用pivot
pdf.pivot(*pdf.columns).sub(cdf.pivot(*cdf.columns),fill_value=0).stack()
Out[218]:
Company Product
ASUS Router -50000.0
Amazon AWS 10000.0
Google Pixel2 -7000.0
Microsoft Window10 3000.0
dtype: float64