2017-10-04 5 views
0

Je suis juste essayer d'ajouter 1 à toutes les valeurs dans la colonne « jour » dans df:Python: Opération sur Pandas une colonne - Erreur: doit être str pas int

df 
    day 
1 1 
2 2 
3 3 
0 0 

J'ai besoin:

df 
    day 
0 1 
1 2 
2 3 
3 4 

J'ai essayé:

df['day']=df['day'].apply(lambda x: x + 1) 

et

df['day']+=1 

Les deux résultats en erreur: TypeError: doit être str, pas int

+0

pas 'ERREUR: TypeError: doit être int, pas str'? – jezrael

+1

'df ['jour'] = df ['jour']. Astype (int) + 1' fonctionne? – jezrael

+0

Essayez ceci: df ['jour'] = df ['jour']. Astype (int) .apply (lambda x: x + 1) – Tbaki

Répondre

0

Il semble erreur:

ERROR: TypeError: must be int, not str

Et solution:

df['day']=df['day'].astype(int) + 1 
+0

Merci @jezrael, ce travail! Bizarrement, quand je faisais: 'type (df.iloc [1] .day)' Il me disait: 'numpy.int64' – Charlotte

+0

Je pense que le problème était des données mixtes - certaines données étaient int et certaines chaînes. Pour vérifier, utilisez 'print (df ['jour']. Apply (type))' – jezrael

+0

Merci @jezrael! – Charlotte