Я пытаюсь найти временные интервалы (например, 1 минута), где все кадры данных содержат одинаковое значение (например, 1).
Дано n временных рядов (df1
, df2
, df3
, ...), которые могут иметь разные отметки времени. Временные ряды имеют дискретные значения состояний 0
и 1
. Из этих функций перехода я хочу получить одну серию, где значения никогда не должны быть> 1. Я думаю о суммировании всех кадров и применении max (x, 1).
import pandas as pd
df1 = pd.DataFrame({'2018-01-01 00:00:00': [1],
'2018-01-01 00:01:00': [0],
'2018-01-01 00:03:00': [0],
'2018-01-01 00:04:00': [1]})
df2 = pd.DataFrame({'2018-01-01 00:00:00': [0],
'2018-01-01 00:01:30': [1],
'2018-01-01 00:03:00': [0],
'2018-01-01 00:04:30': [1]})
df3 = pd.DataFrame({'2018-01-01 00:00:00': [1],
'2018-01-01 00:01:15': [1],
'2018-01-01 00:03:00': [0],
'2018-01-01 00:04:45': [0]})
frames = [df1, df2, df3]
result = pd.concat(frames)
print(df1.add(df2.add(df3,axis="index",fill_value=0),axis="index",fill_value=0))
Промежуточный результат:
[3 rows x 8 columns]
2018-01-01 00:00:00 2018-01-01 00:01:00 2018-01-01 00:01:15 ... 2018-01-01 00:04:00 2018-01-01 00:04:30 2018-01-01 00:04:45
0 2 0.0 1.0 ... 1.0 1.0 0.0
Я думаю, что есть более удобный и интуитивно понятный способ (concat,объединить, присоединиться ...), чтобы сделать это. Я бы разделил мою проблему на:
- получить больше знаний в пандах:)
- добавить / суммировать кадры данных / временные ряды
- пусть значения 0 или 1
- оценка продолжительности смены интервалов