问答交流

【代码报错】dai数据问题特殊字符查询、插入行数据的问题

由freestyle996创建,最终由small_q 被浏览 23 用户

1、查询含有特殊字符的字段数据的问题

在dai数据库中存入了如”min(ta_sma_5_0, ta_sma_10_0, ta_sma_30_0)“包含(,)>=, +,-,*,/等特殊字符的字段,select的时候需要指定固定的字段进行查询。目前总是报错查不到min(float, float, float)的问题,怎么办?


2、插入行数据的问题

向已创建好的dai数据库中插入增加新数据,新数据的每个字段和数据库中的数据类型都一样,但是还是报出这个问题,为什么?该怎么解决?

代码和报错如下:


import pandas as pd
import dai

df = m4.data_1.read()

# df['avg_turn_0'] = df['avg_turn_0'].astype('float32')
# df['industry_sw_level1'] = df['industry_sw_level1'].astype('float64')
# df['industry_sw_level2'] = df['industry_sw_level2'].astype('float64')
# df['industry_sw_level3'] = df['industry_sw_level3'].astype('float64')

ds = dai.DataSource("huotiandayou_v2")
ds.metadata.get('schema').get('avg_turn_0')

# 统一数据类型
for col in list(ds.metadata.get('schema').keys()):
    dtype = ds.metadata.get('schema').get(col)
    # print(f'{col}\t{dtype}')
    if dtype == "timestamp[ns]":
        df[col] = pd.to_datetime(df[col])
    elif dtype == "float":
        df[col] = df[col].astype('float32')
    elif dtype == "double":
        df[col] = df[col].astype('float64')
    # else:
    #     df[col] = df[col].astype(dtype)

ds.insert_bdb(df)

报错

{w:100}


\

评论
  • 第二个问题:insert_bdb()要保证插入的dataframe的列顺序和原始dataframe的列顺序一致,不然就报类似的错
  • 第一个问题:尝试这样的SQL语句 import dai
  • dai.query("""SELECT date, 'min(a,b,c)' FROM test1234;""", full_db_scan=True).df()
{link}