首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Pandas read_csv突然将整型读入为对象,我无法更改它

Pandas read_csv突然将整型读入为对象,我无法更改它
EN

Stack Overflow用户
提问于 2021-08-11 13:29:10
回答 1查看 61关注 0票数 0

我正在使用pandas使用以下命令读入一个.dat文件

'recoil = pd.read_csv('partic_tran_r.dat', engine='python', skiprows=9, sep='\s+')

当我用'recoil.dtypes'请求数据类型时,我得到了以下结果:

代码语言:javascript
复制
pid              object
projectile       object
species          object
gen              object
collision        object
medium          float64
huge            float64
fluence         float64
...
...
dtype: object

因此,大多数数据类型都被正确识别了,但似乎突然前五个数据类型就不能识别了,当我尝试将dtype=int修改为read_csv()中的一个参数时,我只得到了错误消息ValueError: Unable to convert column pid to type <class 'int'>

我以前没有这个问题,我也不知道现在和以前有什么不同。我使用它作为int或float的用例是,我想创建一个唯一的id:

代码语言:javascript
复制
projectile['unique_id'] = projectile['pid'] + projectile['projectile'] * 10

对于pid=3patricle=74unique_id=374(74 repeated 10 times),它返回了,尽管我以前没有遇到过这个问题,代码也没有任何问题。

感谢您的任何建议,如如何解决或规避它。附言:我正在用最新版本的JupyterLab在Windows10上用Anaconda编写代码,所有这些都是用conda update --all更新的

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-13 08:35:07

好的,为了完整起见,我想将答案作为答案发布,而不仅仅是在评论中:

我没有仔细查看.dat文件,它的末尾有两个字符串,与旧版本相比,这两个字符串在.dat中是新的。因此,只需在pd.read_csv()footer参数中说明它或删除它们,自然就解决了将整个列转换为对象而不是int64的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68743017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档