我有一个数据框,里面装满了小时数据,缺少值。日期作为索引,并以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
答案 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>