Pandas: mettre à jour les valeurs d'une colonne


PyAnton

J'ai un grand dataframe avec plusieurs colonnes (exemple ci-dessous). Je souhaite mettre à jour les valeurs d'une colonne particulière (colonne de population) en divisant les valeurs de celle-ci par 1000.

City     Population
Paris    23456
Lisbon   123466
Madrid   1254
Pekin    86648

j'ai essayé df['Population'].apply(lambda x: int(str(x))/1000)

et

df['Population'].apply(lambda x: int(x)/1000)

Les deux me donnent l'erreur

ValueError: littéral invalide pour int () avec base 10: '...'

fuglede

Si vous avez DataFramevraiment l'air comme présenté, le deuxième exemple devrait fonctionner correctement ( intsans même être nécessaire):

In [16]: df
Out[16]: 
     City  Population
0   Paris       23456
1  Lisbon      123466
2  Madrid        1254
3   Pekin       86648

In [17]: df['Population'].apply(lambda x: x/1000)
Out[17]: 
0     23.456
1    123.466
2      1.254
3     86.648
Name: Population, dtype: float64

In [18]: df['Population']/1000
Out[18]: 
0     23.456
1    123.466
2      1.254
3     86.648

Cependant, d'après l'erreur, il semble que vous ayez la chaîne non analysable '...'quelque part dans votre Series, et que les données doivent être nettoyées davantage.

Articles connexes