接上篇,我们来用一个示例来再次见识一下transform的强大功能。这个transform方法的使用示例展示了它在处理时间序列数据时的便利和强大功能,特别是在需要保留原始数据结构的情况下。 以一个计算滚动平均的简单示例:设想我们有一个时间序列数据集,包含日期和相应的值:
import pandas as pd# 创建一个日期范围dates = pd.date_range(start='2023-01-01', periods=10, freq='D')# 创建一个DataFramedf = pd.DataFrame({ 'date': dates, 'value': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]})
我们想要计算每个值的3天滚动平均值。我们可以这样使用 transform方法:
# 设置窗口大小为3window_size = 3# 计算滚动平均df['rolling_mean'] = df['value'].transform(lambda x: x.rolling(window=window_size).mean())
在这个例子中,transform方法应用了一个 lambda 函数,该函数对原始的 value 列使用 rolling 方法,并且设置窗口大小为3以计算滚动平均。然后将结果赋值给新的一列 rolling_mean。
计算完成后,df将包含如下所示的数据: 请注意,由于我们设置的滚动窗口大小为3,所以前两个滚动平均值是 NaN,因为没有足够的数据来计算一个完整的3天平均 。