【发布时间】:2016-10-12 00:30:30
【问题描述】:
我在 python 中有一个非常大的表,来自 .h5 文件 表格的开头看起来有点像这样:
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
我对此一无所知,感谢所有帮助。
【问题讨论】:
-
冒着成为“我们最了解”类型的人的风险,将平均速度作为新行放入听起来不是一个好主意。这样您的专栏
WIND SPEED包含两种不同类型的信息。我书中的灾难秘诀。 -
是的,对不起我的英语,我不打算将平均值放在已经存在的风速之间,我打算删除前 15 秒然后放入平均值,或者制作一个带有平均值的新表。
-
正如 cmets 中对当前 2 个可用答案的讨论:当前答案似乎对风速产生了正确的结果,但两者都对风向产生了不合理的结果,这需要特殊处理,因为它代表圆形数据。 2°和358°的平均风向是360°(或0°),但不是180°,算术平均值是多少。