熟练掌握 Pandas 离散差分,数据变化一目了然

2024-05-27 20:23:14 浏览数 (2)

你是否遇到过这种情况:有一串数据,你想知道每两个相邻的数据之间的差值是多少?比如你记录了每天的气温,想看看今天和昨天的温差有多大。这时候,pandas.diff() 这个方法就派上用场了。

diff()方法可以计算出相邻数据之间的差值,让你一目了然地看出数据的变化趋势。它有以下几个常见用途:

分析时间序列数据的变化情况。比如股票价格的日线走势,通过计算相邻两天的价差,就能更清楚地观察到价格的涨跌幅度。

计算变量值在相邻时间点或索引点之间的变化量和变化率,方便你追踪变量的走势。

检测异常值。如果一个数据与前后数据相差很大,很可能是个异常值或错误数据,diff()可以帮你快速发现。

总之,diff()就像给你的数据套上了"变化显示镜",让数据的走势和变化在你眼前一目了然。无论是做数据分析还是简单查看变化趋势,它都是一个好帮手。这是 pandas 快速上手系列的第 7 篇文章,希望对你有帮助。

语法:

代码语言:javascript复制
df.diff(periods = N, axis = 0)

参数说明:

periods=1

代码语言:javascript复制
计算与上/下几行之间的差值, 默认为1 (对相邻元素计算差分)。
如果是正值n, 表示当前元素与n行之前的元素的差分。
如果是负值-n, 表示当前元素与n行之后的元素的差分。

axis=0

代码语言:javascript复制
计算差分的轴, 0 表示计算行与行之间的差分(通过索引标签沿轴向对齐), 
1表示计算列与列之间的差分。

示例:

代码语言:javascript复制
import pandas as pd
In [37]: df = pd.DataFrame({'A': [1, 3, 6, 10, 15],
                            'B': [1, 4, 9, 16, 25]})

In [38]: df
Out[38]:
    A   B
0   1   1
1   3   4
2   6   9
3  10  16
4  15  25

结果输出:

代码语言:javascript复制
# 因为头 N 行没有之前 N 期的数据,因此这 N 行的结果将被标记为NaN
In [35]: df.diff(periods=1)
Out[35]:
     A    B
0  NaN  NaN
1  2.0  3.0
2  3.0  5.0
3  4.0  7.0
4  5.0  9.0

In [36]: df.diff(periods=2)
Out[36]:
     A     B
0  NaN   NaN
1  NaN   NaN
2  5.0   8.0
3  7.0  12.0
4  9.0  16.0

0 人点赞