如何使用 Pandas 将不一致的时间戳四舍五入为五分钟间隔并填补空白?

How can I use Pandas to round inconsistent timestamps to five minute intervals and fill gaps?

输入 - 一年不规则间隔的天气数据(~ 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 

感谢您的help/suggestions!

开始于:

                        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实际上是typestring,你可以先:

df['datetime'] = pd.to_datetime(df.datetime)
df.set_index('datetime', inplace=True)