2
我有一個熊貓數據框,我試圖更改給定列中由字符串表示爲整數的值。例如:Sklearn將字符串類標籤更改爲int
df = index fruit quantity price
0 apple 5 0.99
1 apple 2 0.99
2 orange 4 0.89
4 banana 1 1.64
...
10023 kiwi 10 0.92
我想它看:
df = index fruit quantity price
0 1 5 0.99
1 1 2 0.99
2 2 4 0.89
4 3 1 1.64
...
10023 5 10 0.92
我可以做到這一點使用
df["fruit"] = df["fruit"].map({"apple": 1, "orange": 2,...})
,如果我有一個小清單來改變其工作原理,但我我正在看一個有500多個不同標籤的專欄。有沒有辦法將這個從string
更改爲int
?
categoricals定義比化;沒有理由直接做 – Jeff
@Jeff - 我不明白 - 你認爲factorize的輸出是否是設計中的'category'? 'print(type)(pd.factorize(pd.Series(['apple','apple','orange','banana')))[0]))'return'numpy array' and [docs](http: //pandas.pydata.org/pandas-docs/stable/reshaping.html#factorizing-values)(最後一個註釋)描述瞭如何轉換爲分類 - 看起來是在「因數分解」之後。還是缺少什麼?謝謝。 – jezrael
你根本不需要因式分解,只需投入分類並使用代碼;這些是因式分解:直接使用因式分解是沒有必要的 – Jeff