Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

Interrogation sur les chained indexing

+1 vote

Voici un extrait de code (simplifié pour exposé juste le probleme)

import pandas as pd
import sklearn as sk
import os
from sklearn.metrics import accuracy_score
from sklearn.tree import export_graphviz

#import des fichiers
test_o = pd.read_csv("C:/Users/test.csv")

test_r=test_o
test_r= pd.get_dummies(test_r,columns=['Sex','Pclass','Embarked','SibSp','Parch'])

features = ['Fare','Sex_male','Sex_female']
X=test_r[features]
test_tr = test_r[features]
test_tr['Fare'].fillna(value=-1,inplace=True)

j'ai l'erreur suivante:

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
self.updateinplace(new_data)

(oui j'ai essayé de comprendre la doc)
j'ai constaté qu'en modifiant le code comme suit, je n'ai plus d'erreur

test_tr = test_r[features]
#je tranforme la ligne du dessus en celle de dessous
test_tr = test_r[features].copy()
  • Pourquoi ai-je ce warning?
  • Quel est la bonne facon de faire pour affecter une valeur a tout les na d'une colonne une valeur?
  • Si vous voyez des aberrations dans mon code ou des bonnes pratiques que je ne n'applique pas ... je suis preneur, j'ai certes plusieurs années de dev mais le python c'est assez nouveau pour moi
demandé 12-Jan-2019 par beginner (118 points)

Se connecter ou S'inscrire pour répondre à cette question.

...