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

2024-04-23 21:18:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在处理面板数据,我被困在这种情况下:

enter image description here

我想要的是使用Country作为引用创建一个数字ID(NumID),如下所示: enter image description here 有人能帮我吗?非常感谢!你知道吗


Tags: 数据id面板情况数字countrynumid
2条回答

一些选项:

groupby&n组

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

因式分解

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

分类

根据您的需要,您还可以考虑使用pandas的^{}数据类型:

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:

作为pd导入 从.api.types类型导入分类类型

标签,唯一=pd.因式分解([“巴西”、“巴西”、“巴西”、“巴西”、“智利”、“智利”、“智利”、“智利”])

打印(“数字表示:\n”,标签) 打印(“唯一值:\n”,uniques)enter image description here

相关问题 更多 >