Python:使用AM / PM信息处理日期/时间

时间:2018-11-21 02:00:14

标签: python datetime

在我的Excel数据中,第1列的标题为“时间”。它包含如下数据和时间信息:7/26/2018 2:15:00 AM

在我的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)

有人可以发现我的错误吗?

我收到以下错误: ValueError:时间数据'7/26/2018 2:15:00 AM'与格式'%m /%d /%y%H:%M:%S%p'(匹配)不匹配

先谢谢了。

2 个答案:

答案 0 :(得分:0)

将格式更改为'%m/%d/%Y %I:%M:%S %p'对我有用。注意大写字母Y。

related docs中,%y表示两位数的年份,而%Y表示年份的四位数字。

此外,您应该使用%I而不是%H,因为前者是12小时,后者是24小时。

答案 1 :(得分:0)

我将使用dateutil.parser将字符串转换为日期时间。如果您的电子表格更改了时间格式,它非常漂亮,并且可以避免任何问题。