繁体   English   中英

如何从字符串变量创建数字索引?

[英]How to create a numeric index from a string variable?

我正在使用面板数据,并且陷入这种情况:

在此处输入图片说明

我想要的是使用“国家/地区”作为参考来创建数字ID(NumID),如下所示: 在此处输入图片说明 有人能帮我吗? 非常感谢!

一些选择:

groupby和ngroup

df['NumID_1'] = df.groupby('Country').ngroup() + 1

分解

df['NumID_2'] = df['Country'].factorize()[0] + 1

分类的

根据您的需求,您还可以考虑使用熊猫的Categorical数据类型:

df['NumID_3'] = df['Country'].astype('category')
  Country  Year Var1 Var2 Var3  NumID  NumID_1  NumID_2 NumID_3
0  Brazil  2000    A    B    C      1        1        1  Brazil
1  Brazil  2001    X    Y    Z      1        1        1  Brazil
2  Brazil  2002    F    F    H      1        1        1  Brazil
3  Brazil  2003    P    3    K      1        1        1  Brazil
4   Chile  2000    A    B    C      2        2        2   Chile
5   Chile  2001    X    Y    Z      2        2        2   Chile
6   Chile  2002    F    F    H      2        2        2   Chile
7   Chile  2003    P    3    K      2        2        2   Chile

尝试此操作以从国家/地区获取num id:

从pandas.api.types以pd格式导入pandas导入CategoricalDtype

标签,唯一性= pd.factorize([[“巴西”,“巴西”,“巴西”,“巴西”,“智利”,“智利”,“智利”,“智利”])

打印(“数值表示形式:\\ n”,标签)打印(“唯一值:\\ n”,唯一性) 在此处输入图像描述

暂无
暂无

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

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