亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

需要幫助創建一個偽虛擬變量,而不是 '1' 使用來自另一列的值

需要幫助創建一個偽虛擬變量,而不是 '1' 使用來自另一列的值

蠱毒傳說 2021-12-17 14:56:24
我有一個看起來像這樣的數據框:A     B    C34    x    a3     y    b23    y    a40    x    b本質上,cols B 和 C 需要成為虛擬變量,帶有標題 B_x、B_y、C_a、C_b。該函數幾乎與 get_dummies() 在 Pandas 中的工作原理完全相同,但有一個主要區別:對于在值為 1 的情況下創建的所有虛擬變量,我需要將值設為 A 列中的值。A     B_x   B_y  C_a C_b34    34    0    34  03     0     3    0   323    0     23   23  040    40    0    0   40我正在處理具有大量類別的相當大的數據。我試過在數據集上使用 get_dummies(),然后使用 df.mask 將所有 1 更改為 df.A,但是這非常慢(大約 10 分鐘)。
查看完整描述

1 回答

?
慕妹3242003

TA貢獻1824條經驗 獲得超6個贊

使用pd.get_dummies和廣播欄目A


df2 = pd.get_dummies(df[['B', 'C']]) * df.A.values.reshape([-1,1])


    B_x B_y C_a C_b

0   34  0   34  0

1   0   3   0   3

2   0   23  23  0

3   40  0   0   40

要分配 back A,有很多選擇??梢宰鰀f2['A'] = df['A']或使用pd.concat


pd.concat([df.A, df2], axis=1)


查看完整回答
反對 回復 2021-12-17
  • 1 回答
  • 0 關注
  • 130 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號