J'ai deux dataframes: Je voudrais soustraire les valeurs dans pour expliquer davantage: La sortie que je recherche est p> df1 code> avec les valeurs dans df2 code> en fonction du jour et créer un nouveau Dataframe appelé delta_values code>. S'il n'y a pas d'entrées pour la journée, aucune action ne devrait se produire. p> B code> dans la colonne Nom a uniquement des valeurs pour les jours 1 et 2. df2 code> devrait soustraire ses valeurs associées aux jours 1 et 2 Avec B code> S pour les jours 1 et 2, mais depuis B code> n'a aucune valeur pour les jours 3 et 4, aucun arithmétique ne devrait se produire. J'ai des problèmes avec cette partie. p>
p> p>
3 Réponses :
Si rien ne vaut mieux à l'esprit de quelqu'un, voici une solution correcte mais pas très élégante:
result.columns = 'Day', 'Name', 'Value' result.Value = result.Value.astype(int) result.sort_values(['Name', 'Day'], inplace=True) result = result[['Name', 'Value', 'Day']]
Nous pouvons fusionner les deux dataframe sur la colonne code> code>, puis soustraire de là.
merged = df1.merge(df2, how='inner', on='Day', suffixes=('', '_y'))
print(merged)
Name Value Day Name_y Value_y
0 A 10 1 C 1
1 A 9 2 C 2
2 A 8 3 C 3
3 A 10 4 C 4
4 B 99 1 C 1
5 B 88 2 C 2
delta_values = df1.copy()
delta_values['Value'] = merged['Value'] - merged['Value_y']
print(delta_values)
Name Value Day
0 A 9 1
1 A 7 2
2 A 5 3
3 A 6 4
4 B 98 1
5 B 86 2
vous pouvez faire avec sortie: p> mapper code> ou fusionner code>. Voici une solution code> Solution:
S'il vous plaît ne partagez pas d'informations comme des images à moins que ce soit absolument nécessaire. Voir: meta.stackverflow .Com / Questions / 303812 / ... , iDownvotedbecau.se/imageofcode , Idownvotedbecau.se/imageofanException .