我有一个脚本,可以一次性应用于大型时间序列数据集,但我想看看结果是否随时间而发生细微变化,所以我需要将我的时间序列划分为 30 天的窗口,并在整个时间段内为每个 30 天的块运行脚本。我的数据示例如下所示,每天 24 个点:
Date & time B C S1 S2 S3
20/10/2015 00:00 1024.7 228.566111 2.672 2.742 4.508
20/10/2015 01:00 1024.5 65.740034 2.683 2.7535 4.509
20/10/2015 02:00 1024.6 -91.845869 2.6925 2.763 4.509
20/10/2015 03:00 1024.5 -222.368074 2.664 2.764 4.512
20/10/2015 04:00 1024.8 -306.697572 2.6615 2.763 4.5135
Python的新手,我已经搜索了这个网站,熊猫文档,YouTube视频和一些教程,但没有运气。我以为这是滚动函数,但发现这仅适用于平均当月的数据(我想将脚本应用于整个月(。然后,我尝试使用以下方法按时间戳对数据进行子采样:
file.Timestamp = pd.to_datetime(file.Date_time,format='%d-%m-%Y %H:%M')
file.index = file.Timestamp
但这只会给我带来错误,就像:
monthy = file.resample('M')
原因是我对Python了解不多,所以我不知道我在寻找什么功能。任何人都可以帮助我或指出我需要研究什么功能的正确方向吗?我愿意做研究,只是不知道要搜索什么,并且已经没有想法了。到目前为止,搜索包括重采样、子采样、窗口、滚动、时间范围、部分和选择。
您可以使用 normal for 循环轻松完成此操作。
我假设您在代码中对此数据使用数据帧。
#sample file
df = pd.read_excel('yourfile.xlsx')
#lets say your function name is myfunct(dataframe)
r = int(df.shape[0]/(30*24))
for i in range(r):
temp = df.iloc[i:i+30*24,:]
myfunct(temp)
#for remaing data that at the end
temp = df.iloc[r*30*24:,:]
myfunct(temp)
这应该可以正常工作。 让我知道代码中是否有歧义
。