作者liquidbox (樹枝擺擺)
看板Python
標題[問題] Pandas依條件新增欄位
時間Tue Jun 23 18:45:40 2020
各位好,
我從公開資訊觀測站抓下來各家公司的財報,
但在季度的損益表中,有時候官網只提供全年數據,不提供單季數據
我必須在抓下來後自己手動將第四季的數據減去第一到三季的數據,
以求得第四季單季數據
但有時一家公司某年某季可能出現資料缺漏,就是四季缺了一兩季這樣
這些筆數必須跳過不計
我的寫法是這樣,
想請問有沒有更精簡一點的寫法,謝謝
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
→ roccqqck: 追求精簡 別人看不懂又有何意義 06/23 18:47
→ roccqqck: 用df.loc[ (df[‘a’]==20) & (df[‘b’]==30)] 06/23 18:57
→ roccqqck: 類似這種方式 06/23 18:57
→ liquidbox: 瞭解,謝謝分享 06/23 19:15
推 sherees: 我覺得原文的寫法比較好閱讀 06/24 10:08
推 Czero: 追求精簡也沒有不好吧..另一種寫法給你參考,可以用df[‘q4 06/24 19:29
→ Czero: ’]=numpy.where (condition, yes..., no...) 06/24 19:29
→ roccqqck: 精簡 要更好閱讀 十年後自己還看得懂 別人看得懂 06/25 00:11
→ roccqqck: 如果不好懂的寫法 至少要這種寫法 跑得更快 06/25 00:12