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, ...
Je veux soustraire df1 de df2. c'est-à-dire soustraire des valeurs dans les colonnes de date respectives.
J'ai essayé ce qui suit:
df2.subtract(df1, fill_value=0)
Mais je reçois l'erreur suivante:
TypeError: unsupported operand type(s) for -: 'str' and 'float'
Je pense que l'erreur est due au fait que l'opération ne peut pas comprendre comment soustraire des chaînes dans la colonne Ville, ce qui est évidemment logique, car soustraire les villes n'a aucun sens.
La réponse acceptée dans cet article [lien] semble suggérer que cela est possible. Je suis l'auteur de cette question mais n'arrive pas à la faire fonctionner maintenant.
Déplacez la colonne Ville dans l'index. Les DataFrames s'aligneront d'abord sur l'index et les colonnes, puis feront la soustraction. Toute combinaison non présente donnera NaN
.
df2.set_index('City').subtract(df1.set_index('City'), fill_value=0)
Est-ce que ça marche?
df2.drop(['City']).subtract(df1.drop(['City']))