【发布时间】:2021-07-20 00:23:07
【问题描述】:
我有一个看起来像这样的数据集...(这里的问题缩写)。
DataFrame Name = ObjectIntTest
Most of the columns/labels are varios objects
标签 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 和编程新手,但需要找到解决方案,以使这些数据可用于逻辑回归... 感谢您的帮助。
【问题讨论】:
-
嗨,Joe,您的 ISIN 代码包含字母和数字。这就是导致值错误的原因。
-
感谢 Lukas,但我无法更改,因为那是国际证券识别号。
-
您需要使用适当的散列函数,因为 ISIN 值无法转换为 int/float。
-
@joe5555 能不能把图片链接换成转录的文字,因为图片很模糊,也可能用不了多久。
-
@AshokArora:完成,感谢您的帮助。没有更好的解决方案吗,因为原始文件中有大约 500 个不同的 ISIN
标签: python object type-conversion integer