我已经使用astype来更改列的类型一段时间了。然而,我今天遇到了一个意想不到的结果。我有一个名为modularity_class的列,我正在尝试将它从浮点数转换为int,并分配给一个新列。
communities_to_analyze['modularity'] = communities_to_analyze['modularity_class'].astype(int)然而,这给了我有趣的结果。
>>print(communities_to_analyze['modularity'][0])
94
>>print(communities_to_analyze.iloc[0]['modularity'])
94.0这看起来太荒谬了。我用的是熊猫1.1.1,这在我身上从未发生过。我想知道以前有没有人遇到过同样的问题?
发布于 2020-08-21 18:45:06
communities_to_analyze.iloc[0]['modularity']这里,您首先访问数据帧的第一行。它被转换成熊猫系列。如果行中某个位置有一个浮点数,则每个值都转换为浮点数。因此,如果您访问熊猫系列的“模块化”索引,它将返回一个浮点数而不是整数。
communities_to_analyze['modularity'][0])在这里你做的是相反的方法。首先,选择列“模块化”。由于该列中没有浮点,因此这些值保持为整数。因此,如果访问第一个值,它将返回一个整数。
发布于 2020-08-21 18:40:56
df['modularity_class'][0]将返回数据格式的一个单元格的内容,在本例中是字符串'94.0'。它现在返回一个没有此str的function.You对象,可以像下面这样转换它:
communities_to_analyze['modularity'] = int(communities_to_analyze['modularity_class'])https://stackoverflow.com/questions/63528286
复制相似问题