2017-10-04 152 views
0

我只是想在DF 1添加到列“天”的所有值:Python的大熊猫:操作上一列 - 错误:必须str的不是int

df 
    day 
1 1 
2 2 
3 3 
0 0 

我需要:

df 
    day 
0 1 
1 2 
2 3 
3 4 

我想:

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

df['day']+=1 

两个结果在错误:类型错误:必须海峡,不是int

+0

不'错误:类型错误:必须是int,不是str'? – jezrael

+1

'df ['day'] = df ['day']。astype(int)+ 1'的作品? – jezrael

+0

试试这个:df ['day'] = df ['day']。astype(int).apply(lambda x:x + 1) – Tbaki

回答

0

这似乎错误是:

ERROR: TypeError: must be int, not str

和解决方案:

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

谢谢@jezrael,这项工作! 奇怪的是,当我在做: 'type(df.iloc [1] .day)' 它告诉我:'numpy.int64' – Charlotte

+0

我认为问题是混合数据 - 有些数据是int和一些字符串。检查使用'print(df ['day']。apply(type))' – jezrael

+0

谢谢@jezrael! – Charlotte

相关问题