2016-10-28 7 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 

위의 그림과 같이 datetime AND로 나노초 형식으로 읽어야합니다. 운없이 아래 코드를 사용하십시오.

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") 

위의 마지막 줄에는 나노초 형식을 지정하는 방법조차 잘 모르겠습니다. 또한 위의 datetime은 날짜와 시간 사이에 특성 "D"가있는 KDB에서 직접 나온 것입니다.

아이디어를 제공해 주셔서 감사합니다.

답변

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 
관련 문제