首页 > 解决方案 > 将对象列转换为整数或浮点数

问题描述

我有一个看起来像这样的数据集......(这里的问题缩写)。

DataFrame Name = ObjectIntTest

大多数列/标签是 varios 对象

标签 ISIN = 各种 ISIN,例如 IE00B3XXRP09、IE00BF553838、LU0950668870

例如,要运行逻辑回归,我需要将各种 ISIN 转换为整数(对于 ISIN IE00B3XXRP09 和 IE00BF553838,整数/浮点数始终需要相同)

我尝试了类似这些的各种方法,但我只得到错误:

ObjectIntTest['ISIN'] = ObjectIntTest.ISIN.astype(int) = ValueError: invalid literal for int() with base 10: 'IE00B3XXRP09'

ObjectIntTest['ISIN'] = ObjectIntTest['ISIN'].astype(float) = ValueError: could not convert string to float: 'IE00B3XXRP09'

ObjectIntTest['ISIN'] = ObjectIntTest['ISIN'].astype(str).astype(int) = ValueError: invalid literal for int() with base 10: 'IE00B3XXRP09'

ObjectIntTest = pd.to_numeric(ObjectIntTest['ISIN']) = ValueError: Unable to parse string "IE00B3XXRP09" at position 0

抱歉,我是 python 和编程的新手,但需要找到使这些数据可用于逻辑回归的解决方案……感谢您的帮助。

标签: pythonobjecttype-conversioninteger

解决方案


有两种方法可以解决这个问题:

  1. 使用使用 Python 字典的键值映射将 an 映射intstring.

  2. 使用单独的散列函数,例如 Python 内置的hash. 例如。

>>> hash('IE00B3XXRP09')
2571740993647531361

>>> type(hash('IE00B3XXRP09'))
<class 'int'>

推荐阅读