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

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

Pandas - 是否有一種“開箱即用”的方式來組合表示枚舉數據的布爾列?

Pandas - 是否有一種“開箱即用”的方式來組合表示枚舉數據的布爾列?

達令說 2023-12-26 16:05:26
是否有庫函數可以進行以下轉換:      Enum    Column  Vals     =>       NewCol     -----------------------   =>      --------      True    False   False    =>        Enum      False   True    False    =>       Column      False   False   True     =>        Vals我確信我可以編寫自己的函數來完美地完成此操作。感覺應該已經有一個庫函數能夠做到這一點,但我在文檔中看不到。
查看完整描述

3 回答

?
浮云間

TA貢獻1829條經驗 獲得超4個贊

假設每True行總是有 1 個,您可以使用DataFrame.idxmaxover?columns

df['NewCol']?=?df.idxmax('columns')

[出去]

? ? Enum? Column? ?Vals? NewCol

0? ?True? ?False? False? ? Enum

1? False? ? True? False? Column

2? False? ?False? ?True? ? Vals

或者,您可以使用DataFrame.dot做點積:

df['NewCol']?=?df.dot(df.columns)


查看完整回答
反對 回復 2023-12-26
?
RISEBY

TA貢獻1856條經驗 獲得超5個贊

這應該有效:

df.join(df.stack().loc[df.stack()==True].reset_index()[['level_1']]).rename(columns={'level_1':'New_Col'})



查看完整回答
反對 回復 2023-12-26
?
慕田峪9158850

TA貢獻1794條經驗 獲得超7個贊

您可以融化然后查詢數據框:


df['NewCol'] = (

    df.reset_index()

      .melt(id_vars=['index'])

      .query('value')

      .set_index('index')

      .drop(columns='value')

)


查看完整回答
反對 回復 2023-12-26
  • 3 回答
  • 0 關注
  • 192 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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