2015-11-26 170 views
0

我有一個包含列「開始」用的值的CSV創建從解析函數值的新列:使用熊貓

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 

我將如何改變這個計算出的值放入一個新列?

+0

你想明確的是輸出?如果你設置'parse_dates = True'或者將csv中的順序位置設置爲'read_csv',那麼它會解析你的字符串 – EdChum

+0

time_Test = pd.read_csv('time_test.csv',parse_dates = ['start']) 完美!驚人! – DGraham

回答

0

你可以告訴read_csv解析閱讀,而不是作爲一個後處理步驟的日期:

time_Test = pd.read_csv('time_test.csv', parse_dates=['start']) 
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