分享

Pandas基础:如何计算两行数值之差

 hercules028 2022-04-25

有时候,我们想要计算数据框架中行之间的差,可以使用dataframe.diff()方法,而不遍历行。

对于Excel用户来说,很容易使用循环来计算行之间的差异,因为在Excel中就是这样做的。然而,pandas提供了一个简单得多的解决方案。

我们将使用下面的示例数据框架进行演示。假设有两种股票的价格:SPYTSLA

import pandas as pd

df= pd.DataFrame({'SPY':[400,405,420,450,500],

                  'TSLA':[200,400,800,700,1000]},

                  index=pd.date_range('2022-04-18','2022-04-22'))

结果如下图1所示。

图片

1

pandas diff()语法

DataFrame.diff(periods= 1,

               axis = 0)

pandas数据框架中计算行之间的差异

可以无须遍历行而计算出股票的日差价。参数periods控制要移动的小数点,以计算行之间的差异,默认值为1

下面的示例计算股票价格的日差价。第一行是NaN,因为之前没有要计算的值。从第二行开始,它基本上从原始数据框架的第二行获取值,然后减去原始数据框架第一行的值。例如405-400=5400-200=200

图片

2

对于相同的推理,我们可以通过将periods设置为负数来向后计算行之间的差异。这非常方便,因为我们不必颠倒数据的顺序。

图片

3

还可以通过将periods设置为1以外的数字来计算非连续行之间的差异。

图片

4

为了帮助可视化上述示例,可以先将列向下移动两行,然后执行减法。下面的代码复制了上面的diff(periods=2)

图片

5

计算两列之间的差

还可以通过将axis参数设置为1(或“columns”)来计算数据框架中各列之间的差异。pandas中的axis参数通常具有默认值0(即行)。

图片

6

注:本文学习整理自pythoninoffice.com

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多