将每一行除以前一行

我有一个股票定价数据框。

日期 中钢 国际贸易中心 微软金融服务公司 世界职业棒球大联盟
2003-01-03 10 9 8 6
2003-01-04 9 9 6 4
2003-01-05 8 9 5 3

回答

使用您显示的样本,请尝试以下操作。简单的解释是,创建 2 个变量 m1 和 m2。其中 m1 包含从 CSCO 列到其余列的所有内容,并使用 1 移动行。在 m2 中包含从 CSCO 列到最后一列值的所有内容,最后将它们分开以获得值。

m1 = df.loc[:,'CSCO':].shift()
m2 = df.loc[:,'CSCO':]
df.loc[:,'CSCO':] = m2/m1

DataFrame 的输出如下:

         Date      CSCO  INTC      MSFT       WBA
0  2003-01-03       NaN   NaN       NaN       NaN
1  2003-01-04  0.900000   1.0  0.750000  0.666667
2  2003-01-05  0.888889   1.0  0.833333  0.750000


以上是将每一行除以前一行的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>