gpt4 book ai didi

python - 特定时间段内的平均值

转载 作者:太空宇宙 更新时间:2023-11-04 03:31:18 24 4
gpt4 key购买 nike

我有一个来自 .h5 文件的相当大的 python 表表格的开头看起来有点像这样:

table =
[WIND REL DIRECTION [deg]] [WIND SPEED [kts]] \
735381.370833 0 0.000000
735381.370845 0 0.000000
735381.370880 0 0.000000
735381.370891 0 0.000000
735381.370903 0 0.000000
735381.370972 0 0.000000
735381.370984 0 0.000000
735381.370995 0 0.000000
735381.371007 0 0.000000
735381.371019 0 0.000000
...

索引行是数据的时间戳。我需要每 15 秒计算一次平均 WIND REL SPEED 和 WIND SPEED,并将其变成一行。我真的需要以高效的方式执行此操作,这个 .h5 文件很大。

这里是一些相关的代码:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from pylab import *
import matplotlib.dates as pltd
import tables

pltd.num2date(table.index) #to turn the timestamp into a date

我在这里很无能,感谢所有帮助。

最佳答案

resample是你的 friend 。

idx = pltd.num2date(table.index)
df = pd.DataFrame({'direction': np.random.randn(10),
'speed': np.random.randn(10)},
index=idx)

>>> df
direction speed
2014-05-28 08:53:59.971204+00:00 0.205429 0.699439
2014-05-28 08:54:01.008002+00:00 0.383199 -0.392261
2014-05-28 08:54:04.031995+00:00 -2.146569 -0.325526
2014-05-28 08:54:04.982402+00:00 1.572352 1.289276
2014-05-28 08:54:06.019200+00:00 0.880394 -0.440667
2014-05-28 08:54:11.980795+00:00 -1.343758 0.615725
2014-05-28 08:54:13.017603+00:00 -1.713043 0.552017
2014-05-28 08:54:13.968000+00:00 -0.350017 0.728910
2014-05-28 08:54:15.004798+00:00 -0.619273 0.286762
2014-05-28 08:54:16.041596+00:00 0.459747 0.524788

>>> df.resample('15S', how='mean') # how='mean' is the default here
direction speed
2014-05-28 08:53:45+00:00 0.205429 0.699439
2014-05-28 08:54:00+00:00 -0.388206 0.289639
2014-05-28 08:54:15+00:00 -0.079763 0.405775

性能类似于@LondonRob提供的方法。我使用具有 100 万行的 DataFrame 进行测试。

df = pd.DataFrame({'direction': np.random.randn(1e6), 'speed': np.random.randn(1e6)}, index=pd.date_range(start='2015-1-1', periods=1e6, freq='1S'))

>>> %timeit df.resample('15S')
100 loops, best of 3: 15.6 ms per loop

>>> %timeit df.groupby(pd.TimeGrouper(freq='15S')).mean()
100 loops, best of 3: 15.7 ms per loop

关于python - 特定时间段内的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31052376/

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