График временного ряда минутной ставки с использованием панд - PullRequest
0 голосов
/ 02 декабря 2018

У меня есть файл, похожий на этот

Times   Code505 Code200 Code404
1543714067  855 86123   1840
1543714077  869 87327   1857
1543714087  882 88522   1883
1543714097  890 89764   1901
1543714107  904 90735   1924
1543714117  914 91963   1956

, за исключением того, что он получил намного больше данных, чем этот.То, что я хочу сделать, это построить график, который выглядит следующим образом enter image description here

Когда я строю свой график, я получаю нечто большее из этого

enter image description here

Что я делаю, чтобы получить мой график, второй из которых является

  data['Times'] = pd.to_datetime(data['Times'], unit = 's')
  data.set_index(['Times'],inplace=True)
  data.plot()

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

Я собираю данные всего за час, и я собираю запись, которая выглядит следующим образом

  1543714067    855 86123   1840

каждые 10 секунд

1 Ответ

0 голосов
/ 02 декабря 2018
>>> df
        Times  Code505  Code200  Code404
0  1543714067      855    86123     1840
1  1543714077      869    87327     1857
2  1543714087      882    88522     1883
3  1543714097      890    89764     1901
4  1543714107      904    90735     1924
5  1543714117      914    91963     1956
>>> 

Это рассчитает RPS на основе двадцати секундных интервалов:

Сдвиг данных вверх 2 и вычитание исходного кадра данных

>>> df.shift(-2)
          Times  Code505  Code200  Code404
0  1.543714e+09    882.0  88522.0   1883.0
1  1.543714e+09    890.0  89764.0   1901.0
2  1.543714e+09    904.0  90735.0   1924.0
3  1.543714e+09    914.0  91963.0   1956.0
4           NaN      NaN      NaN      NaN
5           NaN      NaN      NaN      NaN
>>> 
>>> deltas = df.shift(-2) - df
>>> deltas
   Times  Code505  Code200  Code404
0   20.0     27.0   2399.0     43.0
1   20.0     21.0   2437.0     44.0
2   20.0     22.0   2213.0     41.0
3   20.0     24.0   2199.0     55.0
4    NaN      NaN      NaN      NaN
5    NaN      NaN      NaN      NaN
>>> 

Разделитеделить на двадцать, а затем восстановить время.

>>> rates = deltas / 20
>>> rates
   Times  Code505  Code200  Code404
0    1.0     1.35   119.95     2.15
1    1.0     1.05   121.85     2.20
2    1.0     1.10   110.65     2.05
3    1.0     1.20   109.95     2.75
4    NaN      NaN      NaN      NaN
5    NaN      NaN      NaN      NaN
>>> rates['Times'] = df['Times']
>>> rates
        Times  Code505  Code200  Code404
0  1543714067     1.35   119.95     2.15
1  1543714077     1.05   121.85     2.20
2  1543714087     1.10   110.65     2.05
3  1543714097     1.20   109.95     2.75
4  1543714107      NaN      NaN      NaN
5  1543714117      NaN      NaN      NaN
>>>

Вы можете сохранить метки времени на протяжении всего процесса, если сначала сделаете его индексом.

>>> df
        Times  Code505  Code200  Code404
0  1543714067      855    86123     1840
1  1543714077      869    87327     1857
2  1543714087      882    88522     1883
3  1543714097      890    89764     1901
4  1543714107      904    90735     1924
5  1543714117      914    91963     1956
>>> df = df.set_index('Times')
>>> df
            Code505  Code200  Code404
Times                                
1543714067      855    86123     1840
1543714077      869    87327     1857
1543714087      882    88522     1883
1543714097      890    89764     1901
1543714107      904    90735     1924
1543714117      914    91963     1956
>>> 
>>> deltas = df.shift(-2) - df
>>> rates = deltas / 20
>>> rates
            Code505  Code200  Code404
Times                                
1543714067     1.35   119.95     2.15
1543714077     1.05   121.85     2.20
1543714087     1.10   110.65     2.05
1543714097     1.20   109.95     2.75
1543714107      NaN      NaN      NaN
1543714117      NaN      NaN      NaN
>>> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...