J'ai deux trames de données avec les valeurs suivantes:La base de données n'est pas mise à jour avec des valeurs; sortie est un avertissement 'copie d'une diapositive'
DF1
Cash
Date
2011-01-10 -5114.85
2011-01-11 -5000.85
DF2
GOOG AAPL XOM IBM Cash
2011-01-10 0.0 0.0 0.0 0.0 -19.900
2011-01-11 0.0 0.0 0.0 0.0 0.000
Pour chaque entrée df1, je vérifie si cet index existe dans df2. Si l'index existe, je veux ajouter une valeur de df1 avec df2 dans df2; mettre à jour la valeur dans df2 pour la même chose dire qu'il existe dans df1.
Je suis en train de réaliser que, avec le code suivant:
for each in df1.index:
if each in df2.index:
df2.loc[each]['Cash'] = df1.loc[each]['Cash'] + df2.loc[each]['Cash']
La sortie de la console est:
SettingWithCopyWarning: Une valeur tente de régler sur une copie d'un tranche à partir d'un DataFrame Voir les mises en garde dans la documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy df2.loc [each] ['Cash'] = df1.loc [chaque] ['Cash'] + df2.loc [chaque] ['Cash']
Je suppose un avertissement encore me laisser exécuter le code et mettre à jour mes valeurs de colonne dans DF2 ...
Erreur
métiers cadre de données ne sont pas avec la valeur mise à jour.
Résultats escomptés
GOOG AAPL XOM IBM Cash
2011-01-10 0.0 0.0 0.0 0.0 -5134.75
2011-01-11 0.0 0.0 0.0 0.0 -5000.85
Toute aide sera grandement appréciée. Merci.
Je m'excuse; ce que je veux, c'est que si deux indices correspondent, ajouter de l'argent de df1 dans df2. Comme; -5114,85 + -19,9 = -5134,75 Merci. J'ai mis à jour ma sortie :(. –
@Codinghierarchy Heureusement pour vous la deuxième méthode nécessite presque aucune modification pour travailler pour votre cas. –