0
我有一列中的數據幀稱爲product_type
如:熊貓 - 如何替換系列中的特定值?
df1.product_type.unique()
>> ["prod_1", "prod_2", "prod_3"]
df.prod_cost.dtype
>> dtype('O')
我正在尋找最有效的方式以數值[1, 2, 3]
來替換。 感謝
我有一列中的數據幀稱爲product_type
如:熊貓 - 如何替換系列中的特定值?
df1.product_type.unique()
>> ["prod_1", "prod_2", "prod_3"]
df.prod_cost.dtype
>> dtype('O')
我正在尋找最有效的方式以數值[1, 2, 3]
來替換。 感謝
使用factorize
編碼新列:
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
應該工作
轉換列作爲category
,然後拿到碼。
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