将列字符串转换/解析为datetime值 - pandas

时间:2016-06-20 12:38:18

标签: python string datetime pandas

我有一个热模拟的csv输出,我想用pandas进行数据分析。

将csv导入pandas数据帧后,我想操纵时间戳并将其导入。

起始格式如下(以空格开头,有美国数据格式,缺少年份)。

    ' 05/01  01:00:00'
    ' 05/01  02:00:00'
    ' 05/01  03:00:00'
    ' 05/01  04:00:00'
    ' 05/01  05:00:00'

我被建议用循环函数解决它,我写的如下:

timestamp = []
for ns in raw_datetime:
    #timestamp.append(ns[5:7] + '.' + ns[2:4] + '_' + ns[9:11] + '00h')
    timestamp.append('2016' + '/' + ns[2:4] + '/' + ns[5:7] + '_' + ns[9:11] + ':00')

,其中

raw_datetime = df[' Date/Time']  #original data column

这很好,并返回我想要的日期时间格式。

['2016/05/01_01:00', '2016/05/01_02:00', '2016/05/01_03:00', '2016/05/01_04:00']

然而, pd.to_datetime 函数似乎无法使用它,因为这似乎需要列表而不是系列(?)。

我遇到了解析和功能的概念,如:

 raw_datetime.str.extract('string', expand=True)

但是,我不确定如何做到这一点,同时翻转月和日并添加原始数据中不存在的2016年信息。

谢谢!

编辑:下面添加的代码 注:原生格式为'05/01 01:00:00',即:双倍空格,月,日,双倍空格,hh,mm,ss)]

第一次尝试

df = pd.read_csv('./SimResults.csv')
a = pd.to_datetime(df[' Date/Time'], format='  %m/%d  %H:%M:%s')

第二次尝试:

df = pd.read_csv('./SimResults.csv')
raw_datetime = df[' Date/Time'].str.lstrip('  ')
raw_datetime = ('2016/') + raw_datetime   
b = pd.to_datetime(raw_datetime, format='%Y/%m/%d  %H:%M:%S')

1 个答案:

答案 0 :(得分:2)

您应该将格式指定为app.js函数,因为它不是默认格式:

bin\www