前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Pandas基础:如何计算两行数值之差

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

作者头像
fanjy
发布2022-06-04 09:37:16
4.4K0
发布2022-06-04 09:37:16
举报
文章被收录于专栏:完美Excel完美Excel

标签:Python,pandas

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

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

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

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=5,400-200=200。

图2

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

图3

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

图4

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

图5

计算两列之间的差

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

图6

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档