1. Rolling函数
1.1 简介
Rolling函数是pandas中的一个函数,用于进行基于窗口的操作,例如计算移动平均值。Rolling函数可以基于时间序列、时间点和维度进行操作。
1.2 使用方法
Rolling函数的用法如下:
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3, 4, 5]})
rolling_mean = df['A'].rolling(window=2).mean()
print(rolling_mean)
上述代码中,定义了一个包含5个数的数据框,并计算了每两个数的平均值,结果为:
0 NaN
1 1.5
2 2.5
3 3.5
4 4.5
Name: A, dtype: float64
这个结果是通过对数据框中的每两个数分别取平均值而得到的。
1.3 向下取值操作
Rolling函数可以使用min_periods参数来进行向下取值操作,确定操作窗口时所需的最小数量。
例如,如果我们在计算移动平均值时,要求至少有两个元素(即min_periods=2),那么前两个元素的平均值会被视为NaN,而不是直接使用这两个元素进行平均。这样就可以避免在开始时计算时发生错误。
下面是一个示例:
df = pd.DataFrame({'A': [1, 2, 3, 4, 5]})
rolling_mean = df['A'].rolling(window=2, min_periods=2).mean()
print(rolling_mean)
结果为:
0 NaN
1 1.5
2 2.5
3 3.5
4 4.5
Name: A, dtype: float64
由于min_periods=2,前两个结果为NaN。
2. Apply函数
2.1 简介
Apply函数是pandas中的一个函数,用于在数据框中应用自定义函数。
2.2 使用方法
Apply函数的用法如下:
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
result = df.apply(lambda x: x['A'] + x['B'], axis=1)
print(result)
上述代码中,定义了一个包含两列的数据框,并计算了每一行两列元素的和,结果为:
0 5
1 7
2 9
dtype: int64
这个结果是通过对数据框中的每一行分别计算和而得到的。
2.3 向下取值操作
Apply函数可以使用raw参数来进行向下取值操作。
当raw=True时,自定义函数将接收到每一列的一维数组,而非一整列的数据框,这样就可以在自定义函数内部动态地针对每一个值进行判断并进行操作,从而避免了不能进行计算的情况。
下面是一个示例:
import pandas as pd
def my_func(x):
if x > 3:
return True
else:
return False
df = pd.DataFrame({'A': [1, 2, 3, 4, 5]})
result = df.apply(lambda x: my_func(x), axis=0, raw=True)
print(result)
结果为:
A False
dtype: bool
在这个示例中,自定义函数my_func会先判断列内的每个元素,如果大于3,则返回True,否则返回False。
由于我们使用raw=True进行了向下取值,因此自定义函数接收到的参数为每列的一维数组。
运行结果显示,每一列中只有A列中有大于3的值,因此只有A列中的值为True。