创建具有不均匀时间步长的数据的10分钟运行平均值

问题描述 投票:0回答:1

我正在尝试创建10分钟的风速运行平均值,以便在图表上进行绘制。我的数据中包含许多不均匀的时间步长。我目前正在使用CSV模块读取和收集我的数据,我对熊猫不太熟悉,过去也遇到过问题。

import matplotlib.pyplot as plt
import csv
from datetime import datetime

x=[]
y=[]

with open('KART_201901010000_201912310000.txt') as csvfile:
    plots = csv.reader(csvfile, delimiter=',')
    for row in plots:
        if 'M' == row[1]:
            continue
        else:           
            x.append(datetime.strptime(row[0],'%Y-%m-%d %H:%M'))            
            y.append(int(row[1]))   

plt.plot(x,y, label='Wind Speed')
plt.xlabel('Date and Time')
plt.ylabel('Wind Speed (Kts)')
plt.title('Wind Speed\nVersus Time')
plt.legend()
plt.show()

这是我的数据集的片段,显示了许多不均匀的时间步长之一。

2019-11-01 11:40,30
2019-11-01 11:45,35
2019-11-01 11:50,32
2019-11-01 11:55,34
2019-11-01 11:56,33
2019-11-01 12:00,33
2019-11-01 12:05,36
2019-11-01 12:10,31

显而易见的一般想法是使用for循环继续进行我需要平均数据的计算。我遇到的问题是如何解决不平衡的步骤?有没有办法使用datetime实现我不知道的方法?

python python-3.x
1个回答
0
投票

类似的东西:

import pandas as pd
df = pd.read_csv('KART_201901010000_201912310000.txt', header=1)
df.index = pd.to_datetime(df.index, format='%Y-%m-%d %H:%M')
df.rolling('10m', min_periods=1).mean()

我还没有测试,细节可能有所不同。我知道您不熟悉熊猫,但是自行实现此功能将花费宝贵的时间,我相信您很乐意在其他地方投资。

© www.soinside.com 2019 - 2024. All rights reserved.