如何解决astype 没有将 float 转换为 int
我需要将 df1
中以下列的 dtype 从 float 转换为 int
Index ID
0 42.0
1 990.0
2 107.0
...
Name: ID,Length: 478,dtype: float64
运行 df2 = df1['ID'].astype('int',errors='ignore')
然后检查 dtype
的 df2
会返回与 dtype
完全相同的 float64
(即 df2
)。知道我在这里缺少什么吗?也许这是非常明显的 - 但我很感激任何指示。干杯!
解决方法
参数 errors='ignore'
的工作方式与您想象的不同 - 如果某些错误返回相同的值,则 Series.astype
中没有对话:
errors{ 'raise','ignore'},默认为 'raise'
控制对提供的 dtype 的无效数据引发的异常。
raise : 允许引发异常
忽略:抑制异常。出错时返回原始对象。
可能的想法是首先删除参数:
df1['ID'] = df1['ID'].astype('int')
如果因为缺失值使用 integer na
而失败,这里 Int64
:
df1['ID'] = df1['ID'].astype('Int64')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。