作者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://webptt.com/cn.aspx?n=bbs/Python/M.1592909142.A.706.html
1F:→ roccqqck: 追求精简 别人看不懂又有何意义 06/23 18:47
2F:→ roccqqck: 用df.loc[ (df[‘a’]==20) & (df[‘b’]==30)] 06/23 18:57
3F:→ roccqqck: 类似这种方式 06/23 18:57
4F:→ liquidbox: 了解,谢谢分享 06/23 19:15
5F:推 sherees: 我觉得原文的写法比较好阅读 06/24 10:08
6F:推 Czero: 追求精简也没有不好吧..另一种写法给你参考,可以用df[‘q4 06/24 19:29
7F:→ Czero: ’]=numpy.where (condition, yes..., no...) 06/24 19:29
8F:→ roccqqck: 精简 要更好阅读 十年後自己还看得懂 别人看得懂 06/25 00:11
9F:→ roccqqck: 如果不好懂的写法 至少要这种写法 跑得更快 06/25 00:12