作者tuberosum (potato)
看板Python
標題[問題] 請問df 條件新增欄位該怎麼做
時間Mon Sep 19 20:23:43 2022
請問各位神人
假設
df= A. B. C.
1. 3 4 13
2. 2 7 -9
3. 5 1 0
請問 我想新增一個D欄位
當C欄位>0 D欄位生成B欄位-A欄位
否則 D欄位生成A欄位-B欄位
變成
df= A. B. C. D.
1. 3 4 13 1
2. 2 7 -9 -5
3. 5 1 0 4
請問該怎麼完成呢
實在想不到 感謝各位大神不吝教學 感恩
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.230.30.45 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Python/M.1663590225.A.845.html
1F:→ Hsins: 是想不到還是懶得找... 09/19 20:28
2F:→ papple23g: df.apply 09/19 20:40
3F:→ tuberosum: qq 我試半天還是一直ERROR 我也不知道錯在哪 才上來問 09/19 22:06
df.apply(lambda x: x["B"]-x["A"] if x["C"]>0 else
x["B"]-x["A"]
還是不能跑出來 也不知道問題在哪才詢問各位大神
※ 編輯: tuberosum (125.230.30.45 臺灣), 09/19/2022 22:19:54
4F:→ papple23g: apply裡面要再加參數axis=1,下次把錯誤訊息一併貼上來 09/19 22:34
5F:→ papple23g: 比較好 09/19 22:34
6F:→ tuberosum: 我也不知道錯在哪 KeyError: 'C' 09/19 22:50
7F:→ tuberosum: 前面錯誤一長串 09/19 22:50
8F:→ tuberosum: 痾 成功了 感謝qq 09/19 23:20
9F:→ gene50814: pd.np.where 或是有更多的規則可以用np.select 09/20 00:06
10F:→ lycantrope: 每篇dataframe都問差不多... 09/20 08:33
11F:→ lambo: df.loc[df['C']>0, 'D'] = df['B']-df['A'] 09/22 19:47
12F:→ lambo: df['D'] = df['D'].fillna(df['A']-df['B']) 供參 09/22 19:48
13F:→ tuberosum: 感謝各位 09/25 16:13