如何将 pandas 数据框中的字符串值替换为整数?

use*_*421 5 python dataframe pandas cosine-similarity

我有一个包含多个字符串值的 Pandas DataFrame。我想用整数值替换它们以计算相似性。例如:

stores[['CNPJ_Store_Code','region','total_facings']].head()
Out[24]: 
    CNPJ_Store_Code      region  total_facings
1    93209765046613   Geo RS/SC       1.471690
16   93209765046290   Geo RS/SC       1.385636
19   93209765044084  Geo PR/SPI       0.217054
21   93209765044831   Geo RS/SC       0.804633
23   93209765045218  Geo PR/SPI       0.708165
Run Code Online (Sandbox Code Playgroud)

我想替换 Region == 'Geo RS/SC' ==> 1,region == 'Geo PR/SPI'==> 2 等。

澄清:我想自动进行替换,而不先创建字典,因为我事先不知道我的区域是什么。有任何想法吗?我正在尝试使用 DictVectorizer,但没有成功。

我确信有一种方法可以以智能的方式做到这一点,但我就是找不到它。

有人熟悉解决方案吗?

Dee*_*ace 7

您可以使用该.apply()函数和字典将所有已知字符串值映射到其相应的整数值:

region_dictionary = {'Geo RS/SC': 1, 'Geo PR/SPI' : 2, .... }
stores['region'] = stores['region'].apply(lambda x: region_dictionary[x])
Run Code Online (Sandbox Code Playgroud)