Utilisation de la ligne de crédit mise à jour d'un dataframe python pandas
J'ai une pandas dataframe (df) avec la structure de colonne :
month a b c d
ce dataframe a données pour dire que Jan, Fév, Mar, Avr. A,B,C,D sont des colonnes numériques. Pour le mois de Février , je tiens à recalculer la colonne A et la mettre à jour dans le dataframe c'est à dire pour le mois = Février, A = B + C + D
Code que j'ai utilisé :
df[df['month']=='Feb']['A']=df[df['month']=='Feb']['B'] + df[df['month']=='Feb']['C'] + df[df['month']=='Feb']['D']
Cela s'est exécuté sans erreur, mais ne modifie pas les valeurs dans la colonne A, pour le mois de Février. Dans la console, il a donné un message :
Une valeur est d'essayer d'être mis sur une copie d'une tranche à partir d'un DataFrame.
Essayez d'utiliser .loc[row_indexer,col_indexer] = valeur au lieu
J'ai essayé d'utiliser .ldc mais pour l'instant, le dataframe je travail, j'avais utilisé .reset_index()
sur elle et je ne suis pas sûr de la façon de définir l'index et de l'utilisation .loc. J'ai suivi la documentation mais pas clair. Pourriez-vous s'il vous plaît aidez-moi à sortir d'ici?
Ceci est un exemple dataframe :
import pandas as pd import numpy as np
dates = pd.date_range('1/1/2000', periods=8)
df = pd.DataFrame(np.random.randn(8, 4), index=dates, columns=['A', 'B', 'C', 'D'])
Je veux dire une mise à jour date : 2000-01-03. Je suis incapable de donner l'extrait de mes données comme des données en temps réel.
- pourriez-vous joindre un petit exemple de votre dataframe?
- Le dataframe je suis en train de travailler sur est grand, j'ai essayé d'expliquer la logique ici . Je vais voir si je peux créer tout dataframe
- vous pouvez joindre comme partie de votre dataframe avec
df.head()
oudf.iloc[:10, :10]
- Pourquoi ne pas simplement
df['a'] = df.b + df.c + df.d
? Vous avez besoin d'inclure des exemples de données pour clarifier ce que vous essayez de faire et de produire un MVE. Comment Demander - Anton et Alexandre : C'est un exemple dataframe : importer des pandas que le pd import numpy comme np dates = pd.date_range('1/1/2000', périodes=8) df = pd.DataFrame(np.aléatoire.randn(8, 4), index=dates, des colonnes=['A', 'B', 'C', 'D']) je veux dire une mise à jour date : 2000-01-03. Je suis incapable de donner l'extrait de mes données comme des données en temps réel.
- pour l'avenir, il est préférable de mettre à jour votre question avec vos données, et non dans le commentaire
Vous devez vous connecter pour publier un commentaire.
Comme vous avez pu le voir à partir de l'avertissement que vous devriez utiliser
loc[row_index, col_index]
. Lorsque vous subsetting vos données, vous obtenez des valeurs de l'indice. Vous avez juste besoin de passer pour row_index et puis avec virgule nom_col:Bien que n'étant pas la plus belle, la façon dont je voudrais atteindre votre objectif (sans explicitement à parcourir les lignes) est:
Note:
ix
a été désapprouvée depuis Pandas v0.20.0 en faveur de lailoc
/loc
.