2016-10-28 41 views
2

請參閱此CSV摘錄。閱讀並將KDB格式的納秒時間戳轉換爲熊貓

Serial Datetime      Value 
1  2016-09-29D09:15:01.742144000 5.78 
2  2016-09-29D09:15:01.742190000 5.78 
3  2016-09-29D09:15:01.742222000 5.78 
4  2016-09-29D09:15:01.747254000 5.78 

我需要在第二列中讀取日期時間和納秒級格式,如上所示。使用下面的代碼沒有運氣。

import numpy as np 
import pandas as pd 
from pandas_datareader import data as web 
import matplotlib.pyplot as plt 
data = np.loadtxt("gnca.csv", dtype="int,|S30,|float", delimiter = ",") 
date_parser=lambda x: pd.to_datetime(x, format="%Y%m%d %H%M%SS") 

在上面的最後一行,我甚至不知道如何指定納秒的格式。還要注意,上面顯示的日期時間是從KDB開始的,日期和時間之間的特徵爲「D」。

非常感謝您的任何想法!

回答

3

IIUC你能做到這樣:

df = pd.read_csv(file_name, skipinitialspace=True) 
df.Datetime = pd.to_datetime(df.Datetime, format='%Y-%m-%dD%H:%M:%S.%f') 

In [81]: df 
Out[81]: 
    Serial     Datetime Value 
0  1 2016-09-29 09:15:01.742144 5.78 
1  2 2016-09-29 09:15:01.742190 5.78 
2  3 2016-09-29 09:15:01.742222 5.78 
3  4 2016-09-29 09:15:01.747254 5.78 

In [82]: df.dtypes 
Out[82]: 
Serial    int64 
Datetime datetime64[ns] 
Value    float64 
dtype: object