【问题标题】:Read and Convert KDB Formatted Nanosecond TimeStamp into Pandas读取 KDB 格式的纳秒时间戳并将其转换为 Pandas
【发布时间】:2016-10-28 17:13:40
【问题描述】:

请查看此 CSV 摘录。

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”。

非常感谢您的任何想法!

【问题讨论】:

    标签: datetime pandas kdb


    【解决方案1】:

    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
    

    【讨论】:

      猜你喜欢
      • 2019-11-06
      • 2021-01-09
      • 2021-10-23
      • 1970-01-01
      • 1970-01-01
      • 2017-04-06
      • 2014-09-21
      • 1970-01-01
      • 2019-05-28
      相关资源
      最近更新 更多