[英]Combining two different timestamp dataframes through linear interpolation
我有一個主數據幀和從數據幀。 我想使用插值將從數據附加到主數據幀。 因為,兩者都有不同的時間戳。 例子,
mas_df =
index M24
2019-01-31 15:11:47 299.899098
2019-01-31 15:51:17 338.969140
sla_df =
index POA
2019-01-31 15:10:00 99.78411
2019-01-31 15:11:00 97.64976
2019-01-31 15:12:00 103.60300
2019-01-31 15:50:00 102.94610
2019-01-31 15:51:00 108.54370
2019-01-31 15:52:00 113.74820
2019-01-31 15:53:00 121.27410
將 slav_df 列附加到 mas_df 是目標。
我的預期輸出是:
mas_df =
index M24 M24_POA
2019-01-31 15:11:47 299.899098 102.31 # np.interp(15+(11/60)+(47/3600), [15+11/60,15+(12/60)],[97.64976,103.60300])
2019-01-31 15:51:17 338.969140 110.01 # np.interp(15+(51/60)+(17/3600), [15+51/60,15+(52/60)],[108.54370,113.74820])
我目前的代碼采用最接近的值
aux_df=sla_df['POA'].reindex(mas_df.index,method='nearest').add_prefix(mas_df.columns[0])
mas_df = aux_df
我現在的輸出
mas_df =
index M24 M24_POA
2019-01-31 15:11:47 299.899098 103.60300
2019-01-31 15:51:17 338.969140 113.74820
如何更改我當前的代碼以包含插值?
您可以通過在從屬數據幀中進行插值,然后將這些值作為新列添加到 master 來實現:
for i in mas_df.index.values:
sla_df.loc[i] = np.nan
sla_df = sla_df.sort_index().interpolate(method='time')
mas_df['M24_POA'] = [sla_df.loc[i]['POA'] for i in mas_df.index.values]
這導致:
mas_df =
index M24 M24_POA
2019-01-31 15:11:47 299.899098 102.313131
2019-01-31 15:51:17 338.969140 110.018308
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.