【发布时间】:2021-06-25 13:55:55
【问题描述】:
我有一个能见度数据的时间序列,其中包含每半小时的能见度测量值。当能见度低于 1 公里时定义为雾事件,当能见度超过 1 公里时雾事件结束。请在下面找到代码。我打算找出此类雾事件的数量以及每个此类雾事件的持续时间。
from IPython.display import display
import pandas as pd
import matplotlib.pyplot as plt
from google.colab import files
uploaded = files.upload()
import io
df = pd.read_csv(io.BytesIO(uploaded['visibility.csv']))
df.set_index('Unnamed: 0',inplace=True)
df.index = pd.to_datetime(df.index)
df=df.interpolate(method='linear', limit_direction='forward')
display(df)
Unnamed: 0 visibility_km
2016-01-01 00:00:00 0.595456
2016-01-01 00:30:00 0.595456
2016-01-01 01:00:00 0.595456
2016-01-01 01:30:00 0.595456
2016-01-01 02:00:00 0.595456
... ...
2020-12-31 21:30:00 0.925370
2020-12-31 22:00:00 0.901230
2020-12-31 22:30:00 0.804670
2020-12-31 23:00:00 0.804670
2020-12-31 23:30:00 0.692016
# FOG Events
fog_events=df[df<1.0].count()
print('no. of fog events',fog_events)
no. of fog events 10318
但它只是给出能见度低于 1 公里的次数,而不是雾事件的次数。
【问题讨论】:
-
请分享你的全部代码,这样对你有帮助。
-
欢迎来到 Stack Overflow!如果您将数据复制和粘贴而不是图像,我们会更容易为您提供帮助。以question 为例,请相应地编辑您的问题
-
@erwanlfrt 谢谢你的建议!!
-
@HS-nebula 谢谢!我已经编辑过了。
-
@NathanMisan 我认为这是一个算法问题。
fog_events=df[df<1.0].count()每次 df 低于 1.0 时增加fog_events。但是您想计算每个雾事件。如果我理解正确,雾事件在能见度低于 1.0 时开始,在能见度高于 1.0 时结束。也许可以使用while循环...如果您可以与我们分享visibility.csv我可以给您答案。
标签: python dataframe time-series data-analysis