向数据框中添加缺失的行,并将其平均分配
问题描述:
我使用自定义采样器函数对熊猫数据帧进行采样。 这基本上是由两列组成:向数据框中添加缺失的行,并将其平均分配
- 时间戳
- 值
我想创建一个新的数据帧的所有平均分配的日期时间(即每10分钟)来填充采样值中的缺失值(以相同频率采样)。
Shoudl我需要使用reindex方法?
我试着这样做:
dd = pd.date_range(
start_date.astimezone(pytz.utc),
end_date.astimezone(pytz.utc),
freq="3min"
)
dd = dd.map(lambda item: calendar.timegm(item.timetuple()))
df.index = df.reindex(dd, fill_value="NaN")
它只是不工作。由于两个索引的大小不同,我得到了“长度不匹配错误”。
这是正确的方法吗?
感谢,
FB
答
你可以用这个试试,我用comvibe_first
合并两个数据帧。
start_date = datetime.datetime.today()
end_date = datetime.datetime(2017, 10, 19)
dd = pd.date_range(
start_date,
end_date,
freq="3min"
)
dd = dd.map(lambda item: calendar.timegm(item.timetuple()))
columns = ['some', 'column', 'headers']
df = pd.DataFrame(columns=columns, index=dd)
myarray = np.random.random((len(dd),3))
for val, item in enumerate(myarray):
df.ix[df.index.values[val]] = item
index_new = df.sample(frac=0.8, random_state=200)
df = df.drop(index_new.index)
df_ok = pd.DataFrame(columns=columns, index=dd)
df_ok = df_ok.combine_first(df)