目标我有两个时间序列数据框df_template
和this_df
。两者的采样率都不同。我想使用插值将this_df
重新取样为df_template
。
问题:我有以下code适用于 pandas 0.19 但不适用于 pandas 0.14.1 。我如何让它工作?
df_template = pd.DataFrame()
this_df = pd.DataFrame()
t1 = np.arange(1484664735415, 1484664735710, 30)
t2 = np.arange(1484664735400, 1484664735700, 100)
df_template['Time'] = t1
this_df['Time'] = t2
this_df['S2'] = random.sample(xrange(50), this_df.shape[0])
this_df.set_index('Time', inplace=True)
this_idx = this_df.index.union(df_template.Time)
df_new = this_df.reindex(this_idx).interpolate('index').reindex(df_template.Time)
df_new.reset_index(inplace=True)
this_df.index.union()
发生错误。
AttributeError: 'Series' object has no attribute 'is_monotonic'
我认为pandas 0.14.1中没有这样的功能。那么,我如何得到最终结果,如:
Time S2
0 1484664735415 22.25
1 1484664735445 26.75
2 1484664735475 31.25
3 1484664735505 33.95
4 1484664735535 27.65
5 1484664735565 21.35
6 1484664735595 15.05
7 1484664735625 14.00
8 1484664735655 14.00
9 1484664735685 14.00
任何想法都可以在pandas 0.14.1中使用吗?
答案 0 :(得分:0)
使用外部联接使其工作
this_idx = pd.concat([df_template, this_df], axis = 1, join = 'outer').index
df_new = this_df.reindex(this_idx).interpolate('index').reindex(df_template.index)