Как построить несколько временных интервалов в pandas с перекрытием? - PullRequest
0 голосов
/ 29 мая 2020

У меня есть 3 набора измерений из тестирования приложения с разными параметрами. Каждый тест выполнялся в течение одного и того же времени, но с разными отметками времени. Я хочу построить график результатов, перекрывающих друг друга.

Результаты сохраняются в файле csv в следующем формате: отметка времени, продолжительность. Я читаю результаты в кадре данных pandas, конвертирую временную метку в дату и время и делаю агрегирование для вычисления p90rt, которое я хочу отобразить (код ниже)

df["timestamp"] = pd.to_datetime(df["timestamp"], unit='ms')
df.set_index("timestamp", inplace=True)
gdf = df.groupby(pd.Grouper(freq=freq)).agg({"duration": q90})

Я делаю это для своих 3 наборов данных, затем я рисую их с помощью matplotlib:

ax = gdf_n.plot()
ax = gdf_r.plot(ax=ax)
gdf_p.plot(ax=ax)
plt.axhline(y=3500, color='r', linestyle='-')

Однако, поскольку они были сделаны в разное время, они нанесены довольно далеко друг от друга. Я бы хотел, чтобы они перекрывались (все они занимали одинаковое время - 4 минуты). Я ищу способ нормализовать индекс даты и времени, чтобы 3 графика перекрывались.

df.head ()

       timestamp  duration  respCode
0  1589464106981       397       200
1  1589464107015       363       200
2  1589464107046       371       200
3  1589464107123       365       200
4  1589464107024       467       200

My current attempt

1 Ответ

0 голосов
/ 29 мая 2020

Я нашел решение, хотя и немного хакерское. Мне нужен индекс временной метки, чтобы использовать агрегатор. Поэтому после агрегирования я записал каждый фрейм данных в файл и снова прочитал, чтобы удалить индекс. После этого индекс был сброшен, и я смог построить их все.

gdf.to_csv('data.csv')
tdfn = pd.read_csv('data.csv')
tdfn = tdfn["duration"]

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...