1 Star 1 Fork 1

chuanchao.peng / qdev

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
cuba-sdk.md 2.71 KB
一键复制 编辑 原始数据 按行查看 历史
chuanchao.peng 提交于 2023-07-27 17:34 . first commit

cuba-sdk使用说明

安装

安装可以去release页面下载对应的wheel文件使用pip install [cuba-xxx.whl]安装, 也可以clone项目cuba-sdk使用python -m build适合当前系统版本的wheel文件再安装

使用

对于数据的命名,建议有一定的规范, 比如股票的行情数据可以命名为stock::close, stock::prev_close

写入数据

约定: 如果写入到pandas.DataFrame数据为时序数据,需要保证一定有一列的名称为date, 并且需要 使用df["date"] = pd.to_datetime(df["date"])将该列转为时间类型.

在写入数据前必须先注册数据,然后才能写入

import pandas as pd
from cuba import get_client


df = pd.DataFrame([
    {"date": "2023-01-01", "symbol": "000001", "close": 100},
    {"date": "2023-01-02", "symbol": "000001", "close": 100},
    {"date": "2023-01-03", "symbol": "000001", "close": 100},
    {"date": "2023-01-04", "symbol": "000001", "close": 100},
    {"date": "2023-01-05", "symbol": "000001", "close": 100},
])
df["date"] = pd.to_datetime(df["date"])
df = df.set_index(["date", "symbol"])

path = "stock::mock"
client = get_client()
client.register(path, desc="stock mock data for testing")
client.write("stock::mock", df)

更新数据

更新数据默认按照数据中的date列进行覆盖, 因此非时序数据需要直接write, 不可使用update接口

import pandas as pd
from cuba import get_client


df = pd.DataFrame([
    {"date": "2023-01-03", "symbol": "000001", "close": 101},
    {"date": "2023-01-04", "symbol": "000001", "close": 102},
    {"date": "2023-01-05", "symbol": "000001", "close": 103},
    {"date": "2023-01-06", "symbol": "000001", "close": 104},
    {"date": "2023-01-07", "symbol": "000001", "close": 105},
])
df["date"] = pd.to_datetime(df["date"])
df = df.set_index(["date", "symbol"])
client = get_client()
client.update("stock::mock", df)

删除数据

from cuba import get_client


client = get_client()
client.delete("stock::mock")

读取数据

读取数据实现了以下场景:

  • 全部读取
  • 指定时间范围读取
  • 指定列读取
  • 指定读取引擎

以上场景可以组合使用

from cuba import get_client


path = "stock::mock"
client = get_client()

# 完整读取
df = client.read(path)

# 指定范围
df = client.read(path, start="2023-01-05")
df = client.read(path, end="2023-01-05")
df = client.read(path, start="2023-01-05", end="2023-01-06")

# 指定列
df = client.read(path, columns=["close"])

# 指定引擎
df = client.read(path, engine="pandas")
df = client.read(path, engine="polars")

# 完整参数
df = client.read(path, start="2023-01-05", end="2023-01-06", columns=["close"], engine="polars")
Rust
1
https://gitee.com/pengchuanchao/qdev.git
git@gitee.com:pengchuanchao/qdev.git
pengchuanchao
qdev
qdev
master

搜索帮助