Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
540 views
in Technique[技术] by (71.8m points)

csv格式的tick行情数据导入分布式表时时间类型怎么转换

DolphinDB数据库建表建库代码如下:

dbDate?=?database("",?VALUE,?2020.01.01..2020.12.31)
dbSymbol=database("",?HASH,?[SYMBOL,?10])
db?=?database("dfs://level2",?COMPO,?[dbDate,?dbSymbol])
schemaTable=table( 
 array(SYMBOL,0)?as??symbol,
 array(SYMBOL,0)?as??market,
 array(DATE,0)?as??date,
 array(TIME,0)?as??time,
 array(DOUBLE,0)?as??preClose,
 array(DOUBLE,0)?as??open,
 array(DOUBLE,0)?as??high,
 array(DOUBLE,0)?as??low,
 array(DOUBLE,0)?as??last,
 array(INT,0)?as??numTrades,
 array(INT,0)?as??curNumTrades,
 array(INT,0)?as??volume,
 array(INT,0)?as??curVol,
 array(DOUBLE,0)?as??turnover
 )
db.createPartitionedTable(schemaTable,`quotes,`date`symbol)

csv文件样本数据如下:
image.png

python 代码如下:

import dolphindb as ddb
import numpy as np
import pandas as pd

csv_file="D:/data/stock/Level2text/20200602e.csv"
csv_data=pd.read_csv(csv_file,dtype={'symbol':str})
csv_df=pd.DataFrame(csv_data)

s = ddb.session()
s.connect("127.0.0.1", 8848,"admin","123456")
s.run("tableInsert{{loadTable('{db}', `{tb})}}".format(db="dfs://level2",tb="quotes"), csv_df)

运行时报错:

Traceback (most recent call last):
  File "D:/data/import.py", line 40, in <module>
    s.run("tableInsert{{loadTable('{db}', `{tb})}}".format(db="dfs://level2",tb="quotes"), csv_df)
  File "C:UsersesterAppDataLocalProgramsPythonPython37libsite-packagesdolphindbsession.py", line 67, in run
    return self.cpp.run(script, *args)
RuntimeError: <Server Exception> in call: The column [date] expects type of DATE, but the actual type is STRING.

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

这个需要进行类型转换。比如可以在 read_csv() 方法中,通过 parse_dates 参数直接将某些列转换成 datetime64 类型:

csv_data=pd.read_csv(csv_file,dtype={'symbol':str},parse_dates=['date','time'])

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...