[问题] Pandas依条件新增字段

楼主: liquidbox (樹枝擺擺)   2020-06-23 18:45:40
各位好,
我从公开资讯观测站抓下来各家公司的财报,
但在季度的损益表中,有时候官网只提供全年数据,不提供单季数据
我必须在抓下来后自己手动将第四季的数据减去第一到三季的数据,
以求得第四季单季数据
但有时一家公司某年某季可能出现资料缺漏,就是四季缺了一两季这样
这些笔数必须跳过不计
我的写法是这样,
想请问有没有更精简一点的写法,谢谢
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)
作者: roccqqck (ccqq)   2020-06-23 18:47:00
追求精简 别人看不懂又有何意义用df.loc[ (df[‘a’]==20) & (df[‘b’]==30)]类似这种方式
楼主: liquidbox (樹枝擺擺)   2020-06-23 19:15:00
了解,谢谢分享
作者: sherees (ShaunTheSheep)   2020-06-24 10:08:00
我觉得原文的写法比较好阅读
作者: Czero (悠闲)   2020-06-24 19:29:00
追求精简也没有不好吧..另一种写法给你参考,可以用df[‘q4’]=numpy.where (condition, yes..., no...)
作者: roccqqck (ccqq)   2020-06-25 00:11:00
精简 要更好阅读 十年后自己还看得懂 别人看得懂如果不好懂的写法 至少要这种写法 跑得更快

Links booklink

Contact Us: admin [ a t ] ucptt.com