第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 sklearn 在數(shù)據(jù)幀中的單元格中編碼列表

使用 sklearn 在數(shù)據(jù)幀中的單元格中編碼列表

炎炎設計 2021-11-30 17:02:03
我有一個這樣的數(shù)據(jù)框:df = pd.DataFrame([{'A': 1, 'B': 'p'}, {'A': 1, 'B': 'q'},  {'A': 2, 'B': 'o'},  {'A': 3, 'B': 'p'}])df   A  B0  1  p1  1  q2  2  o3  3  p我可以用代碼正確編碼和解碼。le = LabelEncoder()df_encoded = pd.DataFrame(columns=df.columns)df_decoded = pd.DataFrame(columns=df.columns)for col in df.columns:    df_encoded[col] = le.fit_transform(df[col])df_encoded   A  B0  0  11  0  22  1  03  2  1for col in df.columns:    le = le.fit(df[col])    df_decoded[col] = le.inverse_transform(df_encoded[col])df_decoded   A  B0  1  p1  1  q2  2  o3  3  p  現(xiàn)在如果我有一個這樣的數(shù)據(jù)幀,我該如何編碼和解碼它?dj = pd.DataFrame([{'A': [1,2], 'B': 'p'}, {'A': 1, 'B': ['p','q']},  {'A': 2, 'B': 'o'},  {'A': 3, 'B': 'p'}])我想為 ['p','q'] 的每個單元格設置一個代碼,而不是 ['p','q'] 的代碼。
查看完整描述

1 回答

?
鳳凰求蠱

TA貢獻1825條經(jīng)驗 獲得超4個贊

一種方法是將包含列表的單元格分解為單獨的行,然后應用 LabelEncoder,然后將這些行組合回列表:


df_encoded = pd.DataFrame()

df_decoded = pd.DataFrame()


def t1(z):

    zz = pd.DataFrame([np.array(x).reshape(-1) for x in z.values.tolist()])

    dt = zz.dtypes[0]

    return (zz

        .stack()

        .reset_index(level=1, drop=True)

        .to_frame(col)

        .astype(dt))


def t2(z):

    return z.groupby(level=0).apply(lambda x: np.squeeze(x.values.tolist()))


for col in dj.columns:

    d = t1(dj[col])

    d['x'] = le.fit_transform(d[col])

    df_encoded[col] = t2(d['x'])


print(df_encoded)


for col in dj.columns:

    d = t1(dj[col])

    m = le.fit(d[col])


    d = t1(df_encoded[col])

    d['x'] = m.inverse_transform(d[col])

    df_decoded[col] = t2(d['x'])


print(df_decoded)

輸出:


        A       B

0  [0, 1]       1

1       0  [1, 2]

2       1       0

3       2       1


        A       B

0  [1, 2]       p

1       1  [p, q]

2       2       o

3       3       p


查看完整回答
反對 回復 2021-11-30
  • 1 回答
  • 0 關(guān)注
  • 164 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號