Pandas按指定频率重采样后将结果追加为原DataFrame新列的问题
解决方案
首先将原始Series转换为DataFrame,再按5T频率重采样计算均值,直接将重采样结果赋值给新列即可:重采样结果的索引默认是每个窗口的起始时间,和原DataFrame索引对齐时,只有匹配的起始行位置会填充计算值,其余位置自动为NaN。
完整实现代码如下:
import pandas as pd # 构造样例数据 index = pd.date_range('1/1/2000', periods=9, freq='T') series = pd.Series(range(9), index=index, name='value') # 转为DataFrame df = series.to_frame() # 5T重采样算均值,直接赋值给新列 df['mean_resampled'] = series.resample('5T').mean() # 输出结果 print(df)
运行后输出结果和期望完全一致:
value mean_resampled 2000-01-01 00:00:00 0 2.0 2000-01-01 00:01:00 1 NaN 2000-01-01 00:02:00 2 NaN 2000-01-01 00:03:00 3 NaN 2000-01-01 00:04:00 4 NaN 2000-01-01 00:05:00 5 6.5 2000-01-01 00:06:00 6 NaN 2000-01-01 00:07:00 7 NaN 2000-01-01 00:08:00 8 NaN
内容的提问来源于stack exchange,提问作者Phoenix
相关产品推荐
相关产品推荐

