我有两个 DataFrame,想要减去。
df1:
Val1 Val2 Val3
0 -27 -0.8 -6.786321 -7.024615 -13.946589
1 -27 -0.9 -5.746795 -5.804550 -11.576365
2 -27 -1.0 -4.624857 -4.372321 -9.103681
3 -27 -1.2 -2.685832 -2.418888 -5.057056
4 -27 -1.4 -1.445561 -1.389468 -2.622357
df2:
Bench
0 0.4601
1 -5.3336
2 -6.0163
3 -4.1776
4 -2.3472
由于我有相同的索引,我尝试执行:df1-df2
,但没有成功。
因此我尝试使用另一种方式:
headers = list(df1.columns.values)
filtr_headers = filter(lambda x: x!='',headers)
for i in filtr_headers:
df1['%s' %(i)] = df1['%s' %(i)] - df2['Bench']
但是我得到了带有 NaN 值的返回 Dataframe。我不知道为什么会这样。任何提示将不胜感激。
最佳答案
您可以使用 pd.DataFrame.sub
,如下所示:
In [113]: df1.sub(df2.Bench.values, axis=0)
Out[113]:
Val1 Val2 Val3
0 -27 -0.8 -7.246421 -7.484715 -14.406689
1 -27 -0.9 -0.413195 -0.470950 -6.242765
2 -27 -1.0 1.391443 1.643979 -3.087381
3 -27 -1.2 1.491768 1.758712 -0.879456
4 -27 -1.4 0.901639 0.957732 -0.275157
关于python - 从不同的 DataFrame 中减去值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38904348/