使用pandas从parse函数创建新的值列

时间:2015-11-26 15:07:06

标签: python pandas

我有一个包含列的csv' start'值为:

2015-09-28T12:58:42.831+03
2015-09-28T13:37:43.669+03
2015-09-28T14:11:31.383+03
2015-09-28T15:25:34.710+03
2015-09-28T18:06:02.106+03

我想在数据框中使用解析后的版本创建一个新列。因此,对于一个值,它将是:

import pandas as pd
from dateutil.parser import parse 
parse(time_Test.start[1])
datetime.datetime(2015, 9, 28, 13, 37, 43, 669000, tzinfo=tzoffset(None, 10800))

我可以迭代并解析所有值:

for i in time_Test.start:
    x = parse(i)
    print x

2015-09-28 12:58:42.831000+03:00
2015-09-28 13:37:43.669000+03:00
2015-09-28 14:11:31.383000+03:00
2015-09-28 15:25:34.710000+03:00
2015-09-28 18:06:02.106000+03:00
2015-09-28 18:33:19.217000+03:00

如何更改此值以将计算值放入新列?

2 个答案:

答案 0 :(得分:0)

您可以使用以下命令在数据框中创建新列。

time_Test['parsed_datetime'] = [parse(i) for i in time_Test.start]

但是,正如EdChum建议的那样,我建议您在阅读文件时使用parse_dates=[the column index where your dates are]标志。您的日期将自动解析。您可以在此处找到完整的文档:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html

答案 1 :(得分:0)

您可以告诉read_csv在阅读时解析这些日期,而不是作为后处理步骤:

time_Test = pd.read_csv('time_test.csv', parse_dates=['start'])