首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >:使用astype更改列类型失败

:使用astype更改列类型失败
EN

Stack Overflow用户
提问于 2020-08-21 18:30:06
回答 2查看 90关注 0票数 0

我已经使用astype来更改列的类型一段时间了。然而,我今天遇到了一个意想不到的结果。我有一个名为modularity_class的列,我正在尝试将它从浮点数转换为int,并分配给一个新列。

代码语言:javascript
复制
communities_to_analyze['modularity'] = communities_to_analyze['modularity_class'].astype(int)

然而,这给了我有趣的结果。

代码语言:javascript
复制
>>print(communities_to_analyze['modularity'][0])
94
>>print(communities_to_analyze.iloc[0]['modularity'])
94.0

这看起来太荒谬了。我用的是熊猫1.1.1,这在我身上从未发生过。我想知道以前有没有人遇到过同样的问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-21 18:45:06

代码语言:javascript
复制
communities_to_analyze.iloc[0]['modularity']

这里,您首先访问数据帧的第一行。它被转换成熊猫系列。如果行中某个位置有一个浮点数,则每个值都转换为浮点数。因此,如果您访问熊猫系列的“模块化”索引,它将返回一个浮点数而不是整数。

代码语言:javascript
复制
communities_to_analyze['modularity'][0])

在这里你做的是相反的方法。首先,选择列“模块化”。由于该列中没有浮点,因此这些值保持为整数。因此,如果访问第一个值,它将返回一个整数。

票数 0
EN

Stack Overflow用户

发布于 2020-08-21 18:40:56

df['modularity_class'][0]将返回数据格式的一个单元格的内容,在本例中是字符串'94.0'。它现在返回一个没有此str的function.You对象,可以像下面这样转换它:

代码语言:javascript
复制
communities_to_analyze['modularity'] = int(communities_to_analyze['modularity_class'])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63528286

复制
相关文章

相似问题

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