将dataframe文本列屏蔽为dataframe中的新列

2024-09-30 16:23:26 发布

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

我在下面有一个dataframe,我想用一个新列屏蔽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

请帮忙,谢谢


Tags: importiddataframepandasdf数值pd屏蔽
2条回答

使用^{}并添加^{}

df.insert(1, 'Mask_ProductId', pd.factorize(df['ProductId'])[0])
print (df)
  ProductId  Mask_ProductId  Sales
0     AXX11               0     10
1      CS22               1     34
2     AXX11               0     23
3      FV34               2     45
4      FV34               2     23
5      DF23               3     54
6      CS22               1     65

使用^{}

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

相关问题 更多 >