Python: обработка даты / времени с информацией AM / PM - PullRequest
0 голосов
/ 21 ноября 2018

В моих данных Excel столбец 1 называется «Время».Он содержит данные и информацию о времени следующим образом: 26.07.2008 2:15:00

В своем коде Python я пытаюсь использовать pd.to_datetime для преобразования его в формат даты / времени.

Вот мой код.Это выглядит правильно, но это не работает.

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


#Basis 
pf=0.9
datatimeinterval_mins = 15

#Pump/fan design specs
des_ampere = 327
des_voltage_kv = 3.3
des_kw = 1600
des_flow_nm3s = 49.9
lowclamp=35

min_flowratio = lowclamp/50

print(min_flowratio)

#Load dataset
    df = pd.read_excel(r'C:\Users\Z003V0EE\Desktop\Python Test\Datasetrev0.xlsx', sheet_name=0, parse_date=[0])
    print(df.head())

    #Set index
    df['Time'] = pd.to_datetime(df['Time'], format='%m/%d/%y %H:%M:%S %p')
    df.set_index('Time', inplace=True)

    #actual operating parameters
    df['actualkw'] = (df.PAF2Current * des_voltage_kv * 0.9 * np.math.sqrt(3))
    df['actualflowratio'] = (df.PAF2AirFlow / des_flow_nm3s)
    df['expectedkw'] = (df.actualflowratio**3 * des_kw)
    df['kwsavings'] = (df.actualkw - df.expectedkw)

    df =  df.round(2)
    print(df.head())

    plt.plot(df.index, df.PAF2AirFlow)

Может кто-нибудь заметит мою ошибку, пожалуйста?

Я получаю следующую ошибку: Ошибка значения: данные времени '26.07.2008 2:15:00' не соответствуют формату '% m /% d /% y% H:% M:% S% p '(матч)

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

Я бы использовал dateutil.parser для преобразования строки в дату и время.Это довольно гладко и позволит избежать каких-либо проблем, если ваша электронная таблица когда-либо изменит форматирование времени.

0 голосов
/ 21 ноября 2018

Изменение вашего формата на '%m/%d/%Y %I:%M:%S %p' работает для меня.Обратите внимание на заглавную Y.

В связанных документах , %y означает год с двумя цифрами, а %Y означает четырехзначное представление года.

Кроме того,Вы должны использовать %I вместо %H, так как первый - 12 часов, а второй - 24 часа.

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