Les Pandas d'avertissement lors de l'utilisation de la carte: Une valeur est d'essayer d'être mis sur une copie d'une tranche à partir d'un DataFrame

J'ai le code suivant et il fonctionne. Fondamentalement renomme les valeurs dans les colonnes de sorte qu'ils peuvent être fusionné plus tard.

pop = pd.read_csv('population.csv')
pop_recent = pop[pop['Year'] == 2014]

mapping = {
        'Korea, Rep.': 'South Korea',
        'Taiwan, China': 'Taiwan'
}
f= lambda x: mapping.get(x, x)
pop_recent['Country Name'] = pop_recent['Country Name'].map(f)

Avertissement:
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 à la place
Voir les mises en garde dans la documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
pop_recent['Nom du Pays'] = pop_recent['Country Name'].carte(f)

Je n'ai google ce! Mais aucun des exemples semblent être à l'aide de la carte, donc je suis à une perte...

  • Comment avez-vous pop_recent ?
  • Ajouté un peu de code...
  • Essayez ce que l'avertissement est révélatrice d' - pop.loc [pop (['année'] == 2014), 'Pays Nom'] = pop.loc [pop (['année'] == 2014), 'Pays Nom'].carte(f)
  • N'est-ce pas inutilement complexes? J'ai déjà filtré sur d'autres valeurs que celles de 2014.
  • Que le filtrage est la question. Découvrez ma réponse.
InformationsquelleAutor Mike | 2015-10-19