Python 熊猫-如何替换系列中的特定值?

Python 熊猫-如何替换系列中的特定值?,python,pandas,Python,Pandas,我有一个数据框,其中有一列名为product\u type,例如: df1.product\u type.unique() >>[“产品1”、“产品2”、“产品3”] df.prod_cost.d类型 >>数据类型('O') 我正在寻找一种最有效的方法,用数值来代替它[1,2,3]。 感谢使用对新列进行编码: In [2]: df = pd.DataFrame({'a':list('abcdbcbccc')}) df Out[2]: a 0 a 1 b 2 c 3 d 4 b

我有一个数据框,其中有一列名为
product\u type
,例如:

df1.product\u type.unique()
>>[“产品1”、“产品2”、“产品3”]
df.prod_cost.d类型
>>数据类型('O')
我正在寻找一种最有效的方法,用数值来代替它
[1,2,3]
。 感谢使用对新列进行编码:

In [2]:
df = pd.DataFrame({'a':list('abcdbcbccc')})
df

Out[2]:
   a
0  a
1  b
2  c
3  d
4  b
5  c
6  b
7  c
8  c
9  c

In [5]:
df['code'] = df['a'].factorize()[0] + 1
df

Out[5]:
   a  code
0  a     1
1  b     2
2  c     3
3  d     4
4  b     2
5  c     3
6  b     2
7  c     3
8  c     3
9  c     3
因此,在你的情况下:

df1['product_type'] = df1['product_type'].factorize()[0] + 1

应该工作

将列转换为
类别
,然后获取代码

df1 = pd.DataFrame({'product_type': ['prod_1'] * 3 + ['prod_2'] * 3 + ['prod_3'] * 3})
df1['product_type_code'] = df1.product_type.astype('category').cat.codes

>>> df1
  product_type  product_type_code
0       prod_1                  0
1       prod_1                  0
2       prod_1                  0
3       prod_2                  1
4       prod_2                  1
5       prod_2                  1
6       prod_3                  2
7       prod_3                  2
8       prod_3                  2