2016-05-15 69 views
2

導入後轉換列日我有以下代碼:熊貓:解析/從read_sql

from pandas.io import sql 
import sqlite3 
conn = sqlite3.connect('breakDownRecs.sqlite') 
query = "SELECT * FROM indRecs" 
df = sql.read_sql(query, con=conn) #parse_dates=['DateDayId']) 
print(df) 

我得到(正確地)是這樣的:

   DateID   Usr EventTypeM DateDayID DateMonthID 
0  20151007221243  Noelle  LVL 20151007  201510 
1  20151007225607   Morak  QST 20151007  201510 
2  20151007225621 Austinpower  QST 20151007  201510 
... 

的問題是我怎麼能解析它以便將DateDayID列作爲日期,以便稍後編入索引?如果我提供:

df = sql.read_sql(query, con=conn, parse_dates=['DateDayID']) 

它給了我

   DateID   Usr EventTypeM DateDayID DateMonthID 
0  20151007221243  Noelle  LVL  NaT  201510 
1  20151007225607   Morak  QST  NaT  201510 
... 

謝謝!

回答

1

我認爲你需要to_datetime與參數format

df['DateID'] = pd.to_datetime(df.DateID, format='%Y%m%d%H%M%S') 
print df 
       DateID  Usr EventTypeM DateDayID DateMonthID 
0 2015-10-07 22:12:43 Noelle  LVL  NaT  201510 
1 2015-10-07 22:56:07 Morak  QST  NaT  201510 
0

嘗試:

import pandas as pd 

df.loc[:, 'DateID'] = pd.to_datetime(df.DateID) 
0
df = sql.read_sql(query, con=conn, parse_dates=['DateID']) 

df = sql.read_sql(query, con=conn, parse_dates={'DateID': {'format': '%Y-%m-%d'}})