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

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

根據其他列的值創建新列

根據其他列的值創建新列

Cats萌萌 2023-07-11 15:08:02
在我的df文件中,下面的每個實體(Grubhub、Toasttab、Tenk)都有一列,并且每行的該列值中都顯示“是”或“否”,我有以下代碼,例如:df['Grubhub'] = df[['On GrubHub or Seamless?']].apply(lambda x: any(x == 'Yes'), axis = 1)df['ToastTab'] = df[['On ToastTab?']].apply(lambda x: any(x == 'Yes'), axis = 1)df['Tenk'] = df[['On Tenk?']].apply(lambda x: any(x == 'Yes'), axis = 1)df['Udemy'] = df[['On Udmey?']].apply(lambda x: any(x == 'Yes'), axis = 1)df['Postmates'] = df[['On Postmates?']].apply(lambda x: any(x == 'Yes'), axis = 1)df['Doordash'] = df[['On DoorDash?']].apply(lambda x: any(x == 'Yes'), axis = 1)df['Google'] = df[['On Goole?']].apply(lambda x: any(x == 'Yes'), axis = 1)這為每個實體( Grubhub、Toasttab、Tenk )提供了一個新列,并且該列給出了 true 或 false 值,是否有一種更有效的方法可以在一行代碼或函數中完成所有這些操作?感謝您提前的幫助
查看完整描述

1 回答

?
至尊寶的傳說

TA貢獻1789條經驗 獲得超10個贊

您可以創建一個列圖并應用function內部loop:


columns_map = (

    ('Grubhub', 'On GrubHub or Seamless?'),

    ('ToastTab', 'On ToastTab?'),

    ('Tenk', 'On Tenk?'),

    # etc ...

)


for new_col, alias in columns_map:

    df[new_col] = df[alias].apply(lambda x: x == 'Yes')

    # also you can easily remove aliases columns:

    # df = df.drop(columns=[alias])

或者您可以將值設置到原始列中并根據需要重命名(不帶drop()):


for new_col, alias in columns_map:

    df[alias] = df[alias].apply(lambda x: x == 'Yes')


df.rename(

    columns={alias: new_col for new_col, alias in columns_map},

    inplace=True

)


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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