Почему существует разница во времени для оси X, если я увеличиваю график - PullRequest
1 голос
/ 26 апреля 2019

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

Далее: я хотел бы построить конкретный столбец, чтобы получить первое впечатление. В данных, которые я вижу, значения для этого столбца падают с 600 до нуля в 10:42, см. Изображение:

enter image description here

Если я строю столбец, я получаю следующее изображение

enter image description here

Однако, если я увеличу масштаб, я получу следующее

enter image description here

Как видно, в изображениях огромная разница. Кажется, что-то идет не так.

У меня есть следующий код

data_304=pd.read_csv(r"data.csv",sep=";")
data_304=data_304.drop(["columns_to_drop"],axis=1)
data_304['date']=pd.to_datetime(data_304['date'])
data_304=data_304.set_index('piovan_1_dosing_creation_date')
data_304.index=data_304.index.map(lambda t: t.strftime('%Y-%m-%d %H:%M'))

data_304["piovan_1_dosing_batchvalue_value"].plot()

Я предполагаю, что это может быть связано с часовым поясом, но я не нашел правильного пути. Я был бы очень признателен, если бы вы могли дать мне совет:)

1 Ответ

0 голосов
/ 29 апреля 2019

Прежде всего, позвольте мне поблагодарить вас за вашу помощь, я действительно ценю это :) @ImportanceOfBeingErnest: Вы были правы.Проблема с увеличением и уменьшением связана с тем, что я преобразовал свой индекс типа dtype = 'datetime64 [ns]' в строку, используя строку

data_304.index=data_304.index.map(lambda t: t.strftime('%Y-%m-%d %H:%M'))

Поскольку мой индекс увеличивается до миллисекунд, но меня интересуют не миллисекунды, а секунды, я искал способ просто показать секунды.И строка, упомянутая выше с использованием strftime (), была решением, которое я нашел.К сожалению, я не был достаточно умен, чтобы проверить, что происходит в фоновом режиме, и не смог найти ответ на мою проблему, описанную в первом письме.

После небольшого поиска и фокусировки я нашел следующую информацию, которая помогает мнечтобы установить миллисекунды на ноль и при этом сохранить тип dtype = 'datetime64 [ns]' , что делается

data_304.index=data_304.index.values.astype('<M8[m]')

Применение этого к моим данным изменяет внешний вид времени индекса с

2019-04-24 05: 41: 13.809000 до 2019-04-24 05: 41: 00

Как уже упоминалось, тип остаетсяdatetime64 [ns]

Может быть, это поможет вам, ребята, если вы хотите сохранить тип и усечь индекс

Приветствия и еще раз спасибо:)

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