我有以下测试数据帧:
data
date
2021-03-01 3968513.99
2021-03-02 5909640.34
2021-03-03 6452578.11
2021-03-04 7260439.94
2021-03-05 6659379.74
2021-03-08 6693275.88
2021-03-09 6861187.90
2021-03-10 6716384.27
2021-03-11 6772700.54
2021-03-12 6461420.20
2021-03-15 6005397.14
2021-03-16 4695128.31
2021-03-17 4271115.19
2021-03-18 3927571.69
2021-03-19 3329363.28
2021-03-22 3395927.62
2021-03-23 3163365.76
2021-03-24 2876007.38
2021-03-25 2812801.36
2021-03-26 2854624.55
2021-03-29 2893050.72
2021-03-30 2094476.41
2021-03-31 1923014.42
2021-04-01 NaN
2021-04-02 NaN
2021-04-05 NaN
2021-04-06 1428389.82
2021-04-07 1381988.35
2021-04-08 1256461.70
2021-04-09 1324881.19
2021-04-12 1374734.95
2021-04-13 1261978.35
然而,当我运行以下程序时,重新采样并填充:
test_df.resample("B").ffill()
我得到的和上面完全一样,即没有填充任何内容。四月的头几天仍然是北美。
我试图计算出重采样在这里所做的确切逻辑,即使我将限制设置为非常大(比如60(,它仍然不能填充这些值。
编辑:当你从测试数据中完全删除NaN行时,ffill在添加日期时会正常工作。
在重新采样之前使用fillna
或ffill
就可以了。下面是一些使用mean((聚合方法的代码:
df.fillna(method='ffill').resample('B').mean()