我有一个包含股价数据的数据框,如下所示:
Company Date Price
0 RSG.AX 2011 0.814
1 RSG.AX 2010 0.889
2 RSG.AX 2009 0.937
3 RSG.AX 2008 0.181
4 RSG.AX 2007 0.216
5 RSG.AX 2006 0.494
6 QBE.AX 2011 7.119
7 QBE.AX 2010 8.331
8 QBE.AX 2009 8.961
9 QBE.AX 2008 9.159
10 QBE.AX 2007 9.156
我想把每个公司2009年的价格除以2008年的价格,看看它们是如何变化的。但是,我不知道如何对每个公司的数据进行分组/隔离
理想情况下,最终产品是一个带有公司符号的数据帧及其相应的计算值price(2009)/price(2008)
非常感谢您的帮助
如果你想把价格除以它上一年的价值,那么你可以做如下的事情
为了得到2009年的比率,过滤它
如果这是你唯一感兴趣的比较,你可以按每家公司分组,然后再将其分为2009年和2008年
df.groupby('Company').apply(lambda x: x[x.Date.eq(2009)].Price/x[x.Date.eq(2008)].Price)
您还可以以
Date
列为轴心,然后对这些列进行计算我这样做是为了尽量不必使用
apply
,因为它通常非常慢相关问题 更多 >
编程相关推荐