繁体   English   中英

如何将字符串数据条目重新编码为数字或十进制值?

[英]How do I recode string data entries into numerical or decimal values?

我想在 excel 工作表中重新编码数据条目,然后我将使用该工作表对使用 python 执行其他分析。 因此,我希望将这些字符串条目重新编码为数字或十进制值

这是一个条目的样子:

00000000-0000-0000-0000-000000000000|16|Company Name||123 Address|Suite 123|City|ST|12345|Notes|Name|123 Anywhere Road||Notes|ST|12345|00000000-0000-0000-0000-000000000000|1234-1234-1|123456||||

我希望将整列转换为数字或十进制值。 有什么帮助吗?

尽管问题不是很清楚,但以下内容将帮助您:

此代码将所有为数字的单元格(在竖线“|”处拆分)转换为数字并保存到列表中。

str="00000000-0000-0000-0000-000000000000|12|Company||123 Address|Suite 123|City|ST|12345|Notes|Name|123 Anywhere Road||Notes|ST|12345|00000000-0000-0000-0000-000000000000|1234-1234-1|123456||||"

cells=[int(x) if x.isnumeric() else x for x in str.split('|')]
print (cells)

output 是:

['00000000-0000-0000-0000-000000000000', 12, 'Company', '', '123 Address', 'Suite 123', 'City', 'ST', 12345, 'Notes', 'Name', '
123 Anywhere Road', '', 'Notes', 'ST', 12345, '00000000-0000-0000-0000-000
000000000', '1234-1234-1', 123456, '', '', '', '']

我们可以看到 12, 12345, 12345, 123456 是数字,没有引号。

如果您需要在其他字符串中转换数字,请在空格或连字符处分割单个字符串以进行转换。 为了将十六进制字符串转换为十进制数字,您可以提供int()与基本参数 16,它会正确转换它,例如

int ("10", 16)

结果正确到十进制 16

Arshad 的答案可以应用于大多数专栏,我认为这是您首先想要的。 但是,有些列包含名称或类似内容。 在这些情况下,将这些字符串转换为数值的常用方法是编码。 例如,值为“Pantherx Rare”的列可能包含其他此类名称。 要对此进行编码,您必须首先澄清值之间是否存在顺序。 如果有,序数编码器可能会派上用场。 如果没有,我想到的是 one-hot 编码。 这些编码器可以在 scikit-learn 库中找到。 看看这个页面

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM