- 积分
- 1507
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2012-4-12
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 黄小仙儿 于 2021-11-12 17:25 编辑
有这么一些数据,其中某些要素有nan值,我想要用滑动平均补全。
time
| id
| lon
| lat
| alti
| TEM
| WIND
| 2020/8/1 0:00 | 57029 | 108.45 | 34.49 | 542.6 | 26.55 | 1.900307048 | 2020/8/1 0:00 | 57030 | 108.15 | 34.7 | 994.6 | 22.65 | 1.000269054 | 2020/8/1 1:00 | 57029 | 108.45 | 34.49 | 542.6 | 26.35 | 1.500081851 | 2020/8/1 1:00 | 57030 | 108.15 | 34.7 | 994.6 | 22.55 | 1.400184037 | 2020/8/1 2:00 | 57029 | 108.45 | 34.49 | 542.6 | 25.55 | 0.70036043 | 2020/8/1 2:00 | 57030 | 108.15 | 34.7 | 994.6 | 22.55 | 0.900421446 | 2020/8/1 3:00 | 57029 | 108.45 | 34.49 | 542.6 | 25.25 | 0.500199318 | 2020/8/1 3:00 | 57030 | 108.15 | 34.7 | 994.6 |
| | 2020/8/1 4:00 | 57029 | 108.45 | 34.49 | 542.6 | 24.85 | 1.50050782 | 2020/8/1 4:00 | 57030 | 108.15 | 34.7 | 994.6 | 22.25 | 1.400492545 | 2020/8/1 5:00 | 57029 | 108.45 | 34.49 | 542.6 | 24.85 | 0.900306869 | 2020/8/1 5:00 | 57030 | 108.15 | 34.7 | 994.6 | 22.25 | 1.800268769 | 2020/8/1 6:00 | 57029 | 108.45 | 34.49 | 542.6 | 24.55 | 0.800298207 | 2020/8/1 6:00 | 57030 | 108.15 | 34.7 | 994.6 | 22.15 | 1.00029063 | 2020/8/1 7:00 | 57029 | 108.45 | 34.49 | 542.6 | 24.75 | 0.900252754 | 2020/8/1 7:00 | 57030 | 108.15 | 34.7 | 994.6 | 22.35 | 0.500260356 |
但是因为有很多站次,直接滑动就会将其他站的数据混入。
所以我先groupby利用站号分组后再滑动,没有报错,也会有值填补上,但我检查了一下,根本不是这个站前几个时次的平均值啊。
我把我的这行代码贴出来,请各位大神帮忙检查一下是出什么问题了?
test_df["TEM"]=test_df.sort_values(['time','id']).groupby('id')['TEM'].transform(lambda x: x.fillna(x.rolling(3, min_periods=1).mean()))
检查大半天了,也没看出来个所以然,请各位大神路过的帮忙检查一下。感谢!
|
|