gpt4 book ai didi

python - Pandas 基于更高分辨率的数据重新采样

转载 作者:行者123 更新时间:2023-12-01 09:27:09 30 4
gpt4 key购买 nike

我有两个时间序列,一个是 30 分钟分辨率,另一个是 15 分钟分辨率 AB,如下所示。我想使用 BA 上采样到 15 分钟分辨率,以缩放给定间隔的值。因此,对于第一个值,它将是:

B['final']['01/11/2017  07:30:00'] =  77.0*29.7/(29.7+12.67) 

A['irrad']

2017-11-01 07:30:00     77.0
2017-11-01 08:00:00 214.0
2017-11-01 08:30:00 470.0
2017-11-01 09:00:00 714.0

B['util']

2017-11-01 07:15:00     12.67
2017-11-01 07:30:00 29.70
2017-11-01 07:45:00 46.80
2017-11-01 08:00:00 74.07
2017-11-01 08:15:00 166.27
2017-11-01 08:30:00 256.50
2017-11-01 08:45:00 271.70
2017-11-01 09:00:00 354.33

所以最终系列将是

B['最终']

01/11/2017 07:30    54.0
01/11/2017 07:45 82.9
01/11/2017 08:00 131.1
01/11/2017 08:15 184.8
01/11/2017 08:30 285.2

我正在研究 Pandas 重新采样或合并函数,但发现这是可能的。有任何想法吗?

最佳答案

假设您上采样,然后左合并到 util:

A.index = pd.to_datetime(A.index)
B.index = pd.to_datetime(B.index)
merged = pd.merge(B, A.resample('15s').ffill(), left_index=True, right_index=True, how='left')
>>> merged

util irrad
index
2017-11-01 07:15:00 12.67 NaN
2017-11-01 07:30:00 29.70 77.0
2017-11-01 07:45:00 46.80 77.0
2017-11-01 08:00:00 74.07 214.0
2017-11-01 08:15:00 166.27 214.0
2017-11-01 08:30:00 256.50 470.0
2017-11-01 08:45:00 271.70 470.0
2017-11-01 09:00:00 354.33 714.0

现在您可以使用

>>> merged.irrad * merged.util / (merged.util + merged.util.shift(-1))
index
2017-11-01 07:15:00 NaN
2017-11-01 07:30:00 29.894118
2017-11-01 07:45:00 29.813850
2017-11-01 08:00:00 65.952318
2017-11-01 08:15:00 84.163446
2017-11-01 08:30:00 228.237410
2017-11-01 08:45:00 203.982237
2017-11-01 09:00:00 NaN
dtype: float64

请注意,这不是您在问题中指定的内容。请随意澄清您是如何得出最终结果的。

关于python - Pandas 基于更高分辨率的数据重新采样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50290451/

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