将对象转换为 Int pandas

新手上路,请多包涵

您好,我在将对象列转换为完整列的整数时遇到问题。

我有一个数据框,我试图将一些检测为对象的列转换为整数(或浮点数),但我已经找到的所有答案都对我有用

第一状态

然后我尝试应用 to_numeric 方法但不起作用。 转数值法

然后你可以在这里找到一个自定义方法: Pandas: convert dtype ‘object’ to int but doesn’t work either: data3['Title'].astype(str).astype(int) (我不能再传递图像了 - 你必须相信我它不会’工作)

我尝试使用 inplace 语句,但似乎没有集成到这些方法中:

我很确定答案很愚蠢但找不到

原文由 Pitchkrak 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 760
2 个回答

您需要重新分配输出:

 #maybe also works omit astype(str)
data3['Title'] = data3['Title'].astype(str).astype(int)

或者:

 data3['Title'] = pd.to_numeric(data3['Title'])

样本:

 data3 = pd.DataFrame({'Title':['15','12','10']})
print (data3)
  Title
0    15
1    12
2    10

print (data3.dtypes)
Title    object
dtype: object


 data3['Title'] = pd.to_numeric(data3['Title'])
print (data3.dtypes)
Title    int64
dtype: object


 data3['Title'] = data3['Title'].astype(int)

print (data3.dtypes)
Title    int32
dtype: object

原文由 jezrael 发布,翻译遵循 CC BY-SA 3.0 许可协议

正如 python_enthusiast 所说,

这个命令也适用于我

data3.Title = data3.Title.str.replace(',', '').astype(float).astype(int)

但也适用于

data3.Title = data3.Title.str.replace(',', '').astype(int)

您必须在替换之前使用 str 才能摆脱逗号,然后将其更改为 int/float 否则您将收到错误消息。

原文由 dt170 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题