web-dev-qa-db-ja.com

2つのデータフレームを減算する

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列の文字列を減算する方法を操作が理解できないためだと思います。

この投稿で受け入れられた回答 [link] は、これが可能であることを示唆しているようです。私はその質問の著者ですが、今はうまくいかないようです。

7
codingknob

City列をインデックスに移動します。 DataFramesは、最初にインデックスと列の両方で整列し、次に減算を実行します。存在しない組み合わせはNaNになります。

df2.set_index('City').subtract(df1.set_index('City'), fill_value=0)
13
Ted Petrou

これは機能しますか?

df2.drop(['City']).subtract(df1.drop(['City']))
0
BallpointBen