2016-05-15 81 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'}})