DataFrame.expanding(self, min_periods=1, center=False, axis=0)
提供expanding转换
0.18.0版中的新功能。
参数: | min_periods : 窗口中具有值的最小观察数(否则结果为NA)。 center : 将标签设置在窗口的中央。 axis : |
返回值: | 为特定操作子类化的Window |
Notes
默认情况下,结果设置为窗口的右边缘。可以通过设置将其更改为窗口的中心center=True。
例子
1)计算累积和(sum)
import pandas as pd import numpy as np # 创建一个包含缺失值的 DataFrame df = pd.DataFrame({'B': [0, 1, 2, np.nan, 4]}) # 使用 expanding(2) 来设置一个最小窗口大小为 2,计算扩展窗口的累积和 result = df.expanding(2).sum() # 输出结果 print(result)
2)计算累积均值(mean)
import pandas as pd # 创建示例数据 data = {'A': [1, 2, 3, 4, 5], 'B': [10, 20, 30, 40, 50]} df = pd.DataFrame(data) # 显示原始 DataFrame print(df) # 对列 'A' 进行扩展均值 df['A_cummean'] = df['A'].expanding().mean() # 对列 'B' 进行扩展均值 df['B_cummean'] = df['B'].expanding().mean() print(df)
3)使用自定义聚合函数
import pandas as pd # 创建示例数据 data = {'A': [1, 2, 3, 4, 5], 'B': [10, 20, 30, 40, 50]} df = pd.DataFrame(data) # 显示原始 DataFrame print(df) # 使用 agg 方法应用自定义的聚合函数 df['A_expanding_agg'] = df['A'].expanding().agg(lambda x: x.mean() + x.std()) print(df)