DataFrame.diff()
是 Pandas 中用于计算 DataFrame 或 Series 逐元素差分的一个方法,它可以用于对行或列进行差分运算。具体来说,diff()
计算的是相邻元素之间的差值。
语法:
DataFrame.diff(periods=1, axis=0)
参数说明:
-
periods
:- 类型:整数
- 默认值:1
- 描述:表示计算相隔多少行或列的差值。默认值是 1,即计算每个元素与前一个元素的差值。如果设为 2,则计算每个元素与它之前第 2 个元素的差值,依此类推。可以为负数,表示往后的元素进行差分。
-
axis
:- 类型:整数(0 或 1)
- 默认值:0
- 描述:指定沿哪个轴进行差分运算。
axis=0
表示按行计算差值(即每一列的上下元素差分),axis=1
表示按列计算差值(即每一行的左右元素差分)。
返回值:
- 返回一个 DataFrame,其中每个元素的值是与之前相隔
periods
个元素的差值。对于无法计算差值的元素(如第一个元素或存在 NaN 的元素),其结果为 NaN。
示例:
- 按行计算差分(默认,
axis=0
):
import pandas as pd
data = {'A': [1, 2, 3, 4], 'B': [10, 20, 30, 40]}
df = pd.DataFrame(data)
print(df.diff())
输出:
A B
0 NaN NaN
1 1.0 10.0
2 1.0 10.0
3 1.0 10.0
在这里,diff()
计算了相邻行的差值,第一行没有上一个元素,所以差值为 NaN。
- 按列计算差分(
axis=1
):
print(df.diff(axis=1))
输出:
A B
0 NaN 9
1 NaN 18
2 NaN 27
3 NaN 36
在这里,axis=1
表示按列计算差值,结果是每行的相邻列之间的差值。
- 指定
periods
计算差分:
print(df.diff(periods=2))
输出:
A B
0 NaN NaN
1 NaN NaN
2 2.0 20.0
3 2.0 20.0
这里 periods=2
表示计算与前 2 行的差值。前两行因为无法计算差分,因此结果为 NaN。
用途:
- 时间序列分析:计算连续时间点的数据差异,例如日收益率、温度变化等。
- 数据变化分析:分析列或行中相邻值的差异性,帮助了解数据趋势或波动情况。