首页 > 解决方案 > 将数据框文本列屏蔽为熊猫数据框中的新列

问题描述

我在下面有熊猫数据框,我想用新列掩盖 ProductId 列。将每个 id 分配给一个新的数值。我怎样才能做到这一点?谢谢

import pandas as pd 
df=pd.DataFrame({'ProductId':['AXX11','CS22','AXX11','FV34','FV34','DF23','CS22'],'Sales': 
[10,34,23,45,23,54,65]})
df

期望的结果如下:

ProductId   Mask_ProductId   Sales
   AXX1       20              10
   CS22       21              34
   AXX1       20              23
   FV34       8               45
   FV34       8               23
   DF23       12              54
   CS22       21              65

请帮忙谢谢

标签: pythonpandas

解决方案


使用categorical

In [96]: df['Mask_ProductId'] = df.ProductId.astype('category').cat.codes

In [97]: df
Out[97]: 
  ProductId  Sales  Mask_ProductId
0     AXX11     10               0
1      CS22     34               1
2     AXX11     23               0
3      FV34     45               3
4      FV34     23               3
5      DF23     54               2
6      CS22     65               1

推荐阅读