Python 熊猫:具有另一列唯一值索引的新列

Python 熊猫:具有另一列唯一值索引的新列,python,pandas,dataframe,Python,Pandas,Dataframe,我的数据帧: ID Name_Identify ColumnA ColumnB ColumnC 1 POM-OPP D43 D03 D59 2 MIAN-ERP D80 D74 E34 3 POM-OPP E97 B56 A01 4 POM-OPP A66 D04 C34 5

我的数据帧:

ID       Name_Identify  ColumnA  ColumnB  ColumnC
1        POM-OPP        D43      D03      D59
2        MIAN-ERP       D80      D74      E34
3        POM-OPP        E97      B56      A01
4        POM-OPP        A66      D04      C34
5        DONP28         B55      A42      A80
6        MIAN-ERP       E97      D59      C34
ID       Name_Identify ColumnA  ColumnB  ColumnC    NEW_ID
1        POM-OPP       D43      D03      D59        1
2        MIAN-ERP      D80      D74      E34        2
3        POM-OPP       E97      B56      A01        1
4        POM-OPP       A66      D04      C34        1
5        DONP28        B55      A42      A80        3
6        MIAN-ERP      E97      D59      C34        2
预期的新数据帧:

ID       Name_Identify  ColumnA  ColumnB  ColumnC
1        POM-OPP        D43      D03      D59
2        MIAN-ERP       D80      D74      E34
3        POM-OPP        E97      B56      A01
4        POM-OPP        A66      D04      C34
5        DONP28         B55      A42      A80
6        MIAN-ERP       E97      D59      C34
ID       Name_Identify ColumnA  ColumnB  ColumnC    NEW_ID
1        POM-OPP       D43      D03      D59        1
2        MIAN-ERP      D80      D74      E34        2
3        POM-OPP       E97      B56      A01        1
4        POM-OPP       A66      D04      C34        1
5        DONP28        B55      A42      A80        3
6        MIAN-ERP      E97      D59      C34        2
您可以使用熊猫。分类:

您可以使用熊猫。分类:

您可以使用pandas.groupby:

印刷品:

   ID Name_Identify ColumnA ColumnB ColumnC  NEW_ID
0   1       POM-OPP     D43     D03     D59       1
1   2      MIAN-ERP     D80     D74     E34       2
2   3       POM-OPP     E97     B56     A01       1
3   4       POM-OPP     A66     D04     C34       1
4   5        DONP28     B55     A42     A80       3
5   6      MIAN-ERP     E97     D59     C34       2
您可以使用pandas.groupby:

印刷品:

   ID Name_Identify ColumnA ColumnB ColumnC  NEW_ID
0   1       POM-OPP     D43     D03     D59       1
1   2      MIAN-ERP     D80     D74     E34       2
2   3       POM-OPP     E97     B56     A01       1
3   4       POM-OPP     A66     D04     C34       1
4   5        DONP28     B55     A42     A80       3
5   6      MIAN-ERP     E97     D59     C34       2
解释如下:

在第一个命令中,我们从Name_Identify列中选择唯一的名称

然后根据它们的枚举序列创建字典枚举从1开始:

在第二个命令中,我们使用此字典创建一个新列,方法是将Name_identifie列中的所有名称转换为适当的数字:

解释如下:

在第一个命令中,我们从Name_Identify列中选择唯一的名称

然后根据它们的枚举序列创建字典枚举从1开始:

在第二个命令中,我们使用此字典创建一个新列,方法是将Name_identifie列中的所有名称转换为适当的数字:


哦,太谢谢你了太谢谢你了
In[23]: df.Name_Identify.unique()
array(['POM-OPP', 'MIAN-ERP', 'DONP28'], dtype=object)
In[24]: convert = {k: v for v, k in enumerate(df.Name_Identify.unique(), start=1)}
In[25]: convert
{'POM-OPP': 1, 'MIAN-ERP': 2, 'DONP28': 3}
In[26]: df["NEW_ID"] = df.Name_Identify.map(convert)
In[27]: df
   D Name_Identify ColumnA ColumnB ColumnC  NEW_ID
0  1       POM-OPP     D43     D03     D59       1
1  2      MIAN-ERP     D80     D74     E34       2
2  3       POM-OPP     E97     B56     A01       1
3  4       POM-OPP     A66     D04     C34       1
4  5        DONP28     B55     A42     A80       3
5  6      MIAN-ERP     E97     D59     C34       2