我已經使用sklearn'sLabelEncoder來生成兩列組合的唯一編碼:
import pandas as pd
import numpy as np
from sklearn.preprocessing import LabelEncoder
df = pd.read_csv("data.csv", sep=",")
df
# A B
# 0 1 Yes
# 1 2 No
# 2 3 Yes
# 3 4 Yes
如下:
df['AB'] = df.apply(lambda row: hash((row['A'], row['B'])), axis=1)
le = LabelEncoder()
df['C'] = le.fit_transform(df['AB'])
A B C
0 1 Yes 1
1 2 No 6
2 3 Yes 3
3 4 Yes 4
如何為(原始列和類)和 labelencoder 類生成keys字典values?我可以為哈希這樣做AB:
values=le.transform(le.classes_)
keys=le.classes_
dic=dict(zip(keys,values))
我在這里缺少的是列keys的hash功能AB來產生這樣的東西:
{(1, Yes): 0, (2, No): 6 ,...}
uj5u.com熱心網友回復:
一種選擇是按 A 和 B 設定索引,然后呼叫to_dict:
out = df.set_index(['A','B'])['C'].to_dict()
輸出:
{(1, 'Yes'): 3, (2, 'No'): 1, (3, 'Yes'): 0, (4, 'Yes'): 2}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/473203.html
