无法将对象转换为int

时间:2017-01-11 08:44:42

标签: python pandas

我有一个列表,其值应为数字。现在他们是一个对象:

later        object
opstarten    object
dtype: object

我尝试通过执行以下操作将列更改为str类型:

df_analyse_num[["later"]] = df_analyse_num[["later"]].astype(str)

这似乎不起作用,但是当我分析我的类型它仍然说对象时。

此外,当我尝试将其转换为字符串时出现问题。如果我这样做:

df_analyse_num[["later"]] = df_analyse_num[["later"]].astype(str).astype(int)

它给了我以下错误:

 File "pandas\lib.pyx", line 937, in pandas.lib.astype_intsafe (pandas\lib.c:16667)
 File "pandas\src\util.pxd", line 60, in util.set_value_at (pandas\lib.c:67540)
 ValueError: invalid literal for int() with base 10: '30.0'

任何想法出错的地方?

1 个答案:

答案 0 :(得分:1)

大熊猫专家,但首先尝试float处理表示浮动的小数点,然后int

something.astype(str).astype(float).astype(int)

以下是“native”python中的问题:

int('30.0')

同样失败:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '30.0'

如果我们首先使用float,那么可以将float转换为int

int(float('30.0'))

预期结果:

30