Панды заговор времени - PullRequest
       13

Панды заговор времени

0 голосов
/ 18 сентября 2018

Попытка построить ГГГГ: ММ: ДД ЧЧ: ММ: СС по оси X со значениями по Y.

'df = xxxx' работает

         tagName   tagValue            tagTimestamp
0   Oil Pressure  52.512268 2018-09-17 12:20:03.099
1   Oil Pressure  52.443478 2018-09-17 12:20:02.598
2   Oil Pressure  48.912914 2018-09-17 12:20:02.348
4   Oil Pressure  45.463978 2018-09-17 12:20:01.848
5   Oil Pressure  50.580151 2018-09-17 12:20:01.598
6   Oil Pressure  49.411255 2018-09-17 12:20:01.348
8   Oil Pressure  48.072506 2018-09-17 12:20:01.146

df.plot(kind='scatter',x='tagTimestamp', y='tagvalue', color='red') возвращает ошибку ValueError: scatter requires x column to be numeric Я бы хотел сохранить всю дату и время в столбце x.Я просмотрел все сообщения стека, тесно связанные с этой темой, но не смог успешно преобразовать и вывести его на график.

df.dtypes:

tagName                 object
tagValue               float64
tagTimestamp    datetime64[ns]
dtype: object 

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

Вместо этого вы можете использовать scatter в matplotlib.

plt.scatter(df["tagTimestamp"].values, df["tagValue"].values)

Полный пример:

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

t = ["2018-09-17 12:20:03.099", "2018-09-17 12:20:02.598", "2018-09-17 12:20:02.348", "2018-09-17 12:20:01.848",
     "2018-09-17 12:20:01.598", "2018-09-17 12:20:01.348", "2018-09-17 12:20:01.146"]

df = pd.DataFrame({"time" : t, "value" : np.random.rand(len(t))})
df["time"] = pd.to_datetime(df["time"])

print(df.dtypes)   # time     datetime64[ns]
                   # value           float64
                   # dtype: object

plt.scatter(df["time"].values, df["value"], color="red")
0 голосов
/ 18 сентября 2018

Это работает для меня, это то, что вы ищете?

import pandas as pd

data.dtypes

Дает:

tagValue               float64
tagTimestamp    datetime64[ns]
dtype: object

Вот данные:

tagValue            tagTimestamp
0  52.512268 2018-09-17 12:20:03.099
1  52.443478 2018-09-17 12:20:02.598
2  48.912914 2018-09-17 12:20:02.348
3  45.463978 2018-09-17 12:20:01.848
4  50.580151 2018-09-17 12:20:01.598
5  49.411255 2018-09-17 12:20:01.348
6  48.072506 2018-09-17 12:20:01.146

Изатем построение графика в виде линейного графика, а не разброса:

data.plot(x = 'tagTimestamp')

Дает:

enter image description here

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