我有一个列表,其值应为数字。现在他们是一个对象:
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'
任何想法出错的地方?
答案 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