gpt4 book ai didi

python - 通过线性插值组合两个不同的时间戳数据帧

转载 作者:行者123 更新时间:2023-12-01 00:08:35 24 4
gpt4 key购买 nike

我有一个主数据帧和从数据帧。我想使用插值将从属数据附加到主数据帧。因为,两者都有不同的时间戳。例如,

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

如何更改当前代码以包含插值?

最佳答案

您可以通过在从属数据帧中进行插值,然后将这些值添加到主数据帧作为新列来完成此操作:

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

关于python - 通过线性插值组合两个不同的时间戳数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59792027/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com