Я пытаюсь сослаться на этот SO post , где в первом ответе кто-то создает некоторый код для анализа данных временного ряда о падении дождя и суммирования в часах для каждого события дождя.Я хочу сделать нечто подобное, за исключением суммирования того, как часто насос работает (событие) в часах каждый день из данных временных рядов.С моей стороны нет необходимости суммировать что-либо еще, только продолжительность события.
#read CSV file
df = pd.read_csv('C:\\Users\\desktop\\data.csv', index_col='Date', parse_dates=True)
# Converting the index as date
df.index = pd.to_datetime(df.index)
df
Мои данные выглядят так:
ChWaterPrs
Date
1/0/00 12:45 AM 0.0
1/0/00 12:50 AM 0.0
1/0/00 12:55 AM 0.0
1/0/00 12:00 AM 0.0
1/0/00 1:05 AM 0.0
Я знаю, что насос работает каждый разdf['ChWaterPrs']
больше 5, поэтому я пытаюсь построить эти вспомогательные столбцы, как упомянуто в посте SO:
# create helper columns, a block would be anytime value is > 5
df['block'] = df['ChWaterPrs'] >= 5
df['day'] = df.index.normalize()
# group by day to get unique block count and value count
session_map = df[df['ChWaterPrs'].astype(bool)].groupby('day')['block'].nunique()
hour_map = df[df['ChWaterPrs'].astype(bool)].groupby('day')['ChWaterPrs'].count()
# map to original dataframe
df['sessions'] = df['day'].map(session_map)
df['hours'] = df['day'].map(hour_map)
# calculate result
res = df.groupby(['day', 'hours', 'sessions'], as_index=False)['ChWaterPrs'].sum()
res['duration'] = res['hours'] / res['sessions']
res['amount'] = res['ChWaterPrs'] / res['sessions']
Но если я напечатаю res
, то что-то напортачит ... Продолжительностьне имеет смысла, что они больше, чем 24 часа в сутки.По сути, единственная информация, которую я хотел бы получить, - это resample
данных временного ряда о том, сколько hours
что насос работал, что определяется как df['ChWaterPrs']
больше 5. Я думаю, что данные будут отображаться каждый день (сеанс), где df['ChWaterPrs']
будет ноль или больше 5 при запуске.Любые советы помогут спасибо.
![enter image description here](https://i.stack.imgur.com/dCxLK.png)