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

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

Pandas .apply 有條件 if 在不同的列中

Pandas .apply 有條件 if 在不同的列中

MM們 2023-07-18 10:17:06
我有一個數據框如下。nan我正在嘗試檢查中是否有 a Liq_Factor,如果是,則將 1 放入否則除法use/TW。結果列于測試中。+---+------------+------------+--------+--------+--------+| 1 |            | Liq_Factor | Zscire | Use    | Tw     || 2 | 01/10/2020 | 36.5       | 44     | 43.875 | 11.625 || 3 | 02/10/2020 | Nan        | 43.625 | 13.625 | 33.25  || 4 | 03/10/2020 | 6.125      | 47.875 | 22.5   | 4.625  || 5 | 04/10/2020 | Nan        | 34.25  | 37.125 | 36     || 6 | 05/10/2020 | 43.875     | 17.375 | 5.5    | 36.25  || 7 | 06/10/2020 | 40         | 14.125 | 21.125 | 14.875 || 8 | 07/10/2020 | 42.25      | 44.75  | 21.25  | 31.75  |+---+------------+------------+--------+--------+--------+我想知道我是否可以.apply使用DF1['Testing']=(DF1['Liq_Factor'].apply(lambda x: x=1 if pd.isna(DF1['Zscore']) else DF1['Use']/DF1['Tw'])你能幫忙嗎?
查看完整描述

2 回答

?
蝴蝶不菲

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

您可以使用 apply 或另一種替代方法是 numpy 中的 where 函數:


df['Liq_Factor'] = np.where(df['Liq_Factor'] == np.Nan, 1, df['Use']/df['TW'])

按照下面的評論,您可以執行以下操作:


# create another column with the calculation

df['calc'] = (1/3)* df['ATV']/df['TW']*100000000

# create two rules (you can use one rule and then the opposite)

mask_0 = (df['calc'] < 1)

mask_1 = (df['calc'] > 1)

# change result value by condition

df.loc[mask_0, 'Liq Factor'] = df['calc']

df.loc[mask_1, 'Liq Factor'] = 1


查看完整回答
反對 回復 2023-07-18
?
楊魅力

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

使用下面的代碼-

df['Testing']=df.apply(lambda x: 1 if x['Liq_Factor']=='Nan'  else x['Use']/x['Tw'], axis=1)

根據評論部分的更改

df['Testing']=df.apply(lambda x: 1 if x['Liq_Factor']=='Nan'  else min(x['Use']/x['Tw'],1), axis=1)



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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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