[問題] Pandas依條件新增欄位

看板Python作者 (樹枝擺擺)時間3年前 (2020/06/23 18:45), 編輯推噓2(207)
留言9則, 4人參與, 3年前最新討論串1/1
各位好, 我從公開資訊觀測站抓下來各家公司的財報, 但在季度的損益表中,有時候官網只提供全年數據,不提供單季數據 我必須在抓下來後自己手動將第四季的數據減去第一到三季的數據, 以求得第四季單季數據 但有時一家公司某年某季可能出現資料缺漏,就是四季缺了一兩季這樣 這些筆數必須跳過不計 我的寫法是這樣, 想請問有沒有更精簡一點的寫法,謝謝 def eval_Q4(row): if row['Q1'] is not None and \ row['Q2'] is not None and \ row['Q3'] is not None and \ row['full_year'] is not None: Q4 = row['full_year'] - row['Q3'] - row['Q2'] - row['Q1'] return Q4 df['Q4'] = df.apply(eval_Q4,axis=1) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.230.161.156 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1592909142.A.706.html

06/23 18:47, 3年前 , 1F
追求精簡 別人看不懂又有何意義
06/23 18:47, 1F

06/23 18:57, 3年前 , 2F
用df.loc[ (df[‘a’]==20) & (df[‘b’]==30)]
06/23 18:57, 2F

06/23 18:57, 3年前 , 3F
類似這種方式
06/23 18:57, 3F

06/23 19:15, 3年前 , 4F
瞭解,謝謝分享
06/23 19:15, 4F

06/24 10:08, 3年前 , 5F
我覺得原文的寫法比較好閱讀
06/24 10:08, 5F

06/24 19:29, 3年前 , 6F
追求精簡也沒有不好吧..另一種寫法給你參考,可以用df[‘q4
06/24 19:29, 6F

06/24 19:29, 3年前 , 7F
’]=numpy.where (condition, yes..., no...)
06/24 19:29, 7F

06/25 00:11, 3年前 , 8F
精簡 要更好閱讀 十年後自己還看得懂 別人看得懂
06/25 00:11, 8F

06/25 00:12, 3年前 , 9F
如果不好懂的寫法 至少要這種寫法 跑得更快
06/25 00:12, 9F
文章代碼(AID): #1UyTrMS6 (Python)