Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基于字符串生成数字_Python - Fatal编程技术网

Python 基于字符串生成数字

Python 基于字符串生成数字,python,Python,我想根据数据帧中列中的字符串生成数字。我想创建数字来表示每个唯一的字符串 下面是一个例子和期望的结果 String Desired outcome A 1 A 1 B 2 C 3 D 4 下面的代码不起作用,因为它创建了许多列 dummies = pd.get_dummies(df['String']) 您可以使用ord()函数获取字符的ascii值,例如: ord('A') 上面的命令返回65。如果希望字符从一开始,可以使用类

我想根据数据帧中列中的字符串生成数字。我想创建数字来表示每个唯一的字符串

下面是一个例子和期望的结果

String  Desired outcome
   A    1
   A    1
   B    2
   C    3
   D    4
下面的代码不起作用,因为它创建了许多列

dummies = pd.get_dummies(df['String'])
您可以使用
ord()
函数获取字符的ascii值,例如:

ord('A')
上面的命令返回65。如果希望字符从一开始,可以使用类似
ordFromOne(character)
的简单方法:

def ordFromOne(c):
    return ord(c) - 64
然后你只需在你的每个角色上运行它。如果示例字符实际上是字符串,您当然可以映射函数:

map(ordFromOne, example)

我对数据帧了解不多,但您可以通过以下操作获得所需的结果:

def字符到字符编号(c):
返回订单(c)-ord('A')+1

使用sklearn的OrdinalCoder如何?您可以按照上述建议使用LabelEncoder或OrdinalCoder。