这个需要进行类型转换。比如可以在 read_csv() 方法中,通过 parse_dates 参数直接将某些列转换成 datetime64 类型:
csv_data=pd.read_csv(csv_file,dtype={'symbol':str},parse_dates=['date','time'])
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文件样本数据如下:
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:\Users\tester\AppData\Local\Programs\Python\Python37\lib\site-packages\dolphindb\session.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 t
这个需要进行类型转换。比如可以在 read_csv() 方法中,通过 parse_dates 参数直接将某些列转换成 datetime64 类型:
csv_data=pd.read_csv(csv_file,dtype={'symbol':str},parse_dates=['date','time'])