【发布时间】:2014-01-26 11:32:25
【问题描述】:
我有一个超过 10 年的很长的时间序列,每半小时测量一次,作为 Csv 文件。测量设备时常发生故障。我想用月平均值或移动平均值(忽略缺失值)来插入这个差距。我想我需要一个 for 循环来做到这一点,但我不知道如何准确地做到这一点。有人可以帮助我吗? 我的数据如下所示:
10-Oct-2010 21:15 0.00271
10-Oct-2010 21:45 0.00408
10-Oct-2010 22:15 -0.00228
10-Oct-2010 22:45 0.00433
10-Oct-2010 23:15 0.00421
10-Oct-2010 23:45 0.00224
11-Oct-2010 00:15 -0.01678
11-Oct-2010 00:45 -0.00059
11-Oct-2010 01:15 -0.00371
11-Oct-2010 01:45 0.01353
11-Oct-2010 02:15 0.00108
11-Oct-2010 02:45 0.00101
11-Oct-2010 03:15 -0.00159
11-Oct-2010 03:45 0.0011
我当前的代码是:
import pandas as pd
ts = pd.read_csv('C:\Python27\Scripts\ET_T_2000.csv', sep=';', parse_dates=[['date', 'time']])
ts1 = ts.set_index('date_time')['ET'].resample('D', how='sum')
ts1.to_csv('sum.csv')
所以我得到了蒸发数据的每日总和。我也可以重新采样每月的每日平均值,但我不知道如何告诉 Python 它需要为每个间隔使用该特定月份的平均值。
【问题讨论】:
-
我建议从两个周围的值中插入缺失值;这应该比每月平均值更接近真实的缺失值。
标签: python for-loop pandas average interpolation