df1:
City, 2015-12-31, 2016-01-31, ...
YYZ 562.14, -701.18, ...
DFW 562.14, -701.18, ...
YYC 562.14, -701.18, ...
df2:
City, 2015-12-31, 2016-01-31, ...
SFO 562.14, -701.18, ...
PDX 562.14, -701.18, ...
LAX 562.14, -701.18, ...
我想从df2中减去df1。即减去相应日期列中的值。
我尝试了以下内容:
df2.subtract(df1, fill_value=0)
但是我收到以下错误:
TypeError: unsupported operand type(s) for -: 'str' and 'float'
我认为错误是因为操作无法理解如何在City列中减去字符串,这显然是有道理的,因为减去Cities是荒谬的。
这篇文章[link]中接受的答案似乎表明这是可能的。我是这个问题的作者,但现在似乎无法让它发挥作用。
答案 0 :(得分:8)
将City列移动到索引中。 DataFrames将首先按索引和列对齐,然后进行减法。任何不存在的组合都会产生NaN
。
df2.set_index('City').subtract(df1.set_index('City'), fill_value=0)
答案 1 :(得分:0)
这有用吗?
df2.drop(['City']).subtract(df1.drop(['City']))