0
我有一个应该是数字的值的列表。现在他们的目标不过:无法将对象转换为int
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'
有什么想法这哪里出了问题?
不是一个对大熊猫专家,但尽量'float'然后'int':' something.astype(str).astype(float).astype(int)' –
完全作品,谢谢! –
首先'object'指的是numpy对象的类型,这是正确的,在pandas中你不会看到'str'作为'dtype',其次如果你想把你的列转换为数字用'pd.to_numeric(df_analyse_num [“稍后“],errors ='coerce')'这将推断适当的类型,'int'用于没有缺失值的地方,所有值可以毫无错误地转换为int。同样使用双方括号:'df_analyse_num [[“later”]]'返回单个列df而不是系列,以防万一您不知道 – EdChum