|
|

楼主 |
发表于 2019-6-12 08:47:45
|
显示全部楼层
下面是我自己想的做法:
1. 先将以天为记录的高低温数据,用resample命令,扩充成每隔4小时的情况。原高低温的数据会保留在当天的0点位置,其余时间段为空值。
2. 生成一个新的气温字段,根据0点的高低温数值,分别将其填充到12点和4点的气温字段中。----这样就是,当天的数据中,气温字段里,12点为最高温,4点为最低温。其余字段为空值;
具体代码如下:
- #需要生成新的气温字段,将高温数值设置到当天的12点,而低温数值设置为当天的4点。然后再进行插值填充处理。
- data = data.resample('4H',).asfreq()
- data['气温'] = np.nan
- for i in data.index: #时间点为索引字段
- #先查找当天时间的0点,因为时间扩充后,当天时间的高低温数值,都位于0点所在的行。原数据记录为以天计,将其扩充为每隔4小时计后,原数据保留在0点位置。其余时段为空值
- #然后将该行对应的高、低温值,对应到新生成气温字段的相应时间中(12点的数值为高温,4点的数值为低温,其余为空值,准备填充)
- time1 = i.split(' ')[0] + " 00:00:00"
- if '12:00:00' in i:
- data.loc[i,'气温'] = data.loc[time1,'高温']
- if '04:00:00' in i:
- data.loc[i,'气温'] = data.loc[time1,'低温']
复制代码
生成的结果如下图所示:
现在的问题在于如何对气温字段,进行插值填充了。。
如果用Series.interpolate方法,貌似无法相对较好地拟合当天的温度走势吧?
有什么好办法呢? |
|