【问题标题】:How to import time data in the format of “M-d-y h-m”?如何导入“M-d-y h-m”格式的时间数据?
【发布时间】:2021-12-19 07:55:55
【问题描述】:

来自csv的样本数据如下所示:

datetime,symbol,price,volume
10/1/2020 9:00,XYZ,10.68,375
10/1/2020 9:00,XYZ,10.9,66
10/1/2020 9:00,XYZ,11.42,103
10/1/2020 9:00,XYZ,12.62,280
10/1/2020 9:00,XYZ,10.73,23
10/1/2020 9:00,XYZ,11.44,299
10/1/2020 9:00,XYZ,12.66,152
10/1/2020 9:00,XYZ,11.04,401
10/1/2020 9:00,XYZ,10.61,392
10/1/2020 9:00,XYZ,11.21,473

我执行了以下行来读取数据:

schemaTB = extractTextSchema(csvFile)
update schemaTB set type="DATETIME" where name="datetime"
schemaTB[`format]=["M-d-y h:m:s",,,];
t = loadText(csvFile,,schemaTB)

但是却报错:

t = loadText(csvFile, , schemaTB) => Invalid temporal format M-d-y h:m:s

【问题讨论】:

  • 您可能正在寻找这种格式:formats

标签: python dolphindb


【解决方案1】:

您可以使用 pandas 来完成此任务。
首先,您应该在导入 csv 时阅读具有正确类型的日期时间列。然后你转换成你想要的格式:

import pandas as pd
df = pd.read_csv(csvFile, sep=",", parse_dates=['datetime'])
df["datetime"].dt.strftime("%m-%d-%Y %H:%M:%S")
print(df)

输出:

             datetime symbol  price  volume
0 2020-10-01 09:00:00    XYZ  10.68     375
1 2020-10-01 09:00:00    XYZ  10.90      66
2 2020-10-01 09:00:00    XYZ  11.42     103
3 2020-10-01 09:00:00    XYZ  12.62     280
4 2020-10-01 09:00:00    XYZ  10.73      23
5 2020-10-01 09:00:00    XYZ  11.44     299
6 2020-10-01 09:00:00    XYZ  12.66     152
7 2020-10-01 09:00:00    XYZ  11.04     401
8 2020-10-01 09:00:00    XYZ  10.61     392
9 2020-10-01 09:00:00    XYZ  11.21     473

编辑:您甚至可以使用 lambda 函数以正确的格式直接导入:

df = pd.read_csv(csvFile, sep=",", parse_dates=['datetime'], date_parser=lambda d: pd.Timestamp(d).strftime("%m-%d-%Y %H:%M:%S"))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 2016-10-15
    • 1970-01-01
    • 2019-01-28
    • 1970-01-01
    • 2021-11-26
    • 2017-06-04
    相关资源
    最近更新 更多