时间:2017-07-18 09:14:07

标签: python-3.x pandas missing-data

我有一个数据框,里面装满了小时数据,缺少值。日期作为索引,并以yyyy-mm-dd hh:mm列出。

对于我正在使用的上下文,仅仅镜像上面的值是不合适的。因此ffill是不够的。最好从前一天镜像同一小时的值。

因此,如果前一天10:00的值为“红色”,则缺失的数据将以“红色”值存档。

如果有人可以帮助我这样做,他们将度过我的一天! :)

Date Time          |        Yeovilton
01/01/2012 00:00   |           12.4
01/01/2012 01:00   |           11.7
...
...
02/01/2012 00:00   |           5.9
01/01/2012 01:00   |           NaN

1 个答案:

答案 0 :(得分:1)

按小时对数据进行分组并填写群组:

ffill

您的问题是,正如您所指出的那样,import pandas as pd import numpy as np timestamps = [pd.Timestamp(t) for t in ['2011-01-01 10:00:00', '2011-01-01 12:00:00', '2011-01-02 10:00:00']] colors = ['red', 'blue', np.nan] ts = pd.Series(colors, index=timestamps) print ts # 2011-01-01 10:00:00 red # 2011-01-01 12:00:00 blue # 2011-01-02 10:00:00 NaN # dtype: object print ts.ffill() # 2011-01-01 10:00:00 red # 2011-01-01 12:00:00 blue # 2011-01-02 10:00:00 blue # dtype: object print ts.groupby(ts.index.hour).ffill() # 2011-01-01 10:00:00 red # 2011-01-01 12:00:00 blue # 2011-01-02 10:00:00 red # dtype: object 按顺序运行,而您的数据不在您要填充的序列中。但由于你的索引已经是一个时间戳,你可以很容易地提取小时,与它分组,并填充组内。

要证明这是有效的(并展示如何为此制作样本数据):

<finalName>MyApp-${project.version}</finalName>