簡體   English   中英

通過線性插值組合兩個不同的時間戳數據幀

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM