输入 - 一年的不定期天气数据(约5分钟) 期望输出 - 每隔5分钟一次的天气数据
我正在尝试清理一年的天气数据,并希望以此为契机探索Python和Pandas的使用。这是一个需要在将来重复的过程,并且自动化它是非常可取的!
输入样本
2/2/2015 8:03 43.5
2/2/2015 8:08 43.4 0
2/2/2015 8:13 43.3 0
2/2/2015 8:18 43.2 7
2/2/2015 8:28 43.1 9
2/2/2015 8:33 43 11
2/2/2015 8:38 43 9
2/2/2015 8:43 43 11
输出样本
2/2/2015 8:00 43.5
2/2/2015 8:05 43.4 0
2/2/2015 8:10 43.3 0
2/2/2015 8:15 43.2 7
2/2/2015 8:20 N/A N/A
2/2/2015 8:25 43.1 9
2/2/2015 8:30 43 11
2/2/2015 8:35 43 9
2/2/2015 8:40 43 11
感谢您的帮助/建议!
答案 0 :(得分:2)
从:
开始 A B
datetime
2015-02-02 08:03:00 43.5 NaN
2015-02-02 08:08:00 43.4 0
2015-02-02 08:13:00 43.3 0
2015-02-02 08:18:00 43.2 7
2015-02-02 08:28:00 43.1 9
2015-02-02 08:33:00 43.0 11
2015-02-02 08:38:00 43.0 9
2015-02-02 08:43:00 43.0 11
2015-02-02 09:00:00 43.1 9
DatetimeIndex: 8 entries, 2015-02-02 08:03:00 to 2015-02-02 08:43:00
Data columns (total 2 columns):
A 8 non-null float64
B 7 non-null float64
dtypes: float64(2)
您可以.resample()
DateTimeIndex
:
df.resample('5Min')
A B
datetime
2015-02-02 08:00:00 43.5 NaN
2015-02-02 08:05:00 43.4 0
2015-02-02 08:10:00 43.3 0
2015-02-02 08:15:00 43.2 7
2015-02-02 08:20:00 NaN NaN
2015-02-02 08:25:00 43.1 9
2015-02-02 08:30:00 43.0 11
2015-02-02 08:35:00 43.0 9
2015-02-02 08:40:00 43.0 11
2015-02-02 08:45:00 NaN NaN
2015-02-02 08:50:00 NaN NaN
2015-02-02 08:55:00 NaN NaN
2015-02-02 09:00:00 43.1 9
如果您的datetime
实际上属于type
string
,您可以先:
df['datetime'] = pd.to_datetime(df.datetime)
df.set_index('datetime', inplace=True)