J'ai un pandas dataframe: data. Il a des colonnes ["name", 'A', 'B']
Ce que je veux faire (et travailler) est:
d2 = data[data['name'] == 'fred'] #This gives me multiple rows
d2['A'] = 0
Cela définira la colonne A sur les lignes fred à 0. J'ai aussi fait:
indexes = d2.index
data['A'][indexes] = 0
Cependant, les deux me donnent le même avertissement:
/Users/brianp/work/cyan/venv/lib/python2.7/site-packages/pandas/core/indexing.py:128: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame
See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
Comment pandas VEUX-T-JE faire cela?
Ceci est un avertissement très commun des pandas. Cela signifie que vous écrivez dans une tranche de copie et non dans les données d'origine. Il est donc possible que cela ne s'applique pas aux colonnes d'origine en raison d'une confusion dans l'assignation chaînée. Veuillez lire ceci post . Il a une discussion détaillée sur ce SettingWithCopyWarning
. Dans ton cas je pense que tu peux essayer
data.loc[data['name'] == 'fred', 'A'] = 0