J'ai un dict de pays et de la population:Pourquoi suis-je une série dans une apply/affecter la fonction dans Pandas
population_dict = {"Germany": 1111, .... }
Dans mon df (sort_countries) J'ai une colonne appelée pays et je veux ajouter une autre colonne appelée population du dictionnaire ci-dessus (pays correspondant à la population)
population_df = sort_countries.assign(
population=lambda x: population_dict[x["country"]], axis = 1)
population_df.head()
qui donne l'erreur: TypeError: 'Series' objects are mutable, thus they cannot be hashed
.
Pourquoi est x["country"]
une série quand j'imagine qu'il devrait retourner juste le nom du pays. Ce petit bout de pandas me rend toujours confus. Dans mes lambdas, je m'attendrais à ce que x soit une rangée et je sélectionne simplement le pays de cette rangée. Au lieu de len (x ["country"]) me donne 192 (le nombre de mes pays, la série entière). Comment puis-je les faire correspondre en utilisant lambdas et pas une fonction distincte d'autre? Merci!
la carte fonctionne parfaitement. Mais le .item() ne le fait pas. Je crois que x ["country"] est une série avec toute la colonne. Je ne comprends pas pourquoi. J'ai juste besoin de cette rangée spécifique ... –