🚀 AI 一键生成 joinquant 策略代码
立即体验
👉 AI 生成代码 👈

JoinQuant 聚宽平台中 get_sort_dataframe 函数与向导式策略详解

joinquant | 发布时间: 2026/6/4
以下内容由 EasyQuant 生成。

问题描述

get_sort_dataframe 函数帮助文档在那里

找了半天没有找到这个函数, 猜测应该是向导式里边的:
from kuanke.wizard import *

1、那位大佬知道这个函数参数用法吗?
2、向导式到底是个什么,帮助文档里也找不到?

解决方案

你好!你在官方的 API 文档中找不到 get_sort_dataframekuanke.wizard 是非常正常的,因为它们确实不属于聚宽公开的核心 API 范畴。下面为你详细解答这两个问题:

1. 关于 get_sort_dataframe 函数的用法

为什么找不到文档?
get_sort_dataframe 并不是 JoinQuant 官方公开的标准 API 函数,而是向导式策略(策略生成器)在后台自动生成代码时使用的一个内部封装函数。它被封装在 kuanke.wizard 模块中,主要为了方便图形化界面生成的代码调用,因此官方并没有为这些内部函数提供详细的公开帮助文档。

它的作用是什么?
顾名思义,这个函数的作用是对 Pandas 的 DataFrame 进行排序(通常用于根据某个因子值对股票池进行排序选股)。

最佳替代方案(强烈建议):
既然你已经开始查看和修改代码,强烈建议直接使用 Python 数据分析标准库 Pandas 原生的排序方法,这比依赖未公开的内部函数要稳定和灵活得多。在量化研究中,处理 DataFrame 排序的标准做法是使用 sort_values()

Pandas 排序示例:

import pandas as pd

# 假设 df 是你获取到的包含股票因子数据的 DataFrame
# df = get_fundamentals(query(...))

# 按照某列(例如 'market_cap' 总市值)进行升序排序(从小到大)
sorted_df = df.sort_values(by='market_cap', ascending=True)

# 按照某列进行降序排序(从大到小)
sorted_df_desc = df.sort_values(by='market_cap', ascending=False)

# 多列排序:先按市值升序,市值相同按市盈率降序
sorted_df_multi = df.sort_values(by=['market_cap', 'pe_ratio'], ascending=[True, False])

使用原生的 sort_values 完全可以替代 get_sort_dataframe 的功能,并且你可以随时查阅 Pandas 的官方文档来了解更多高级用法。


2. “向导式”到底是个什么?

向导式策略(策略生成器)的概念:
“向导式”指的是聚宽平台早期提供的一种图形化、零代码(或低代码)的策略生成工具。它的初衷是为了让不懂 Python 编程的用户,通过在网页上点击下拉菜单、勾选条件(比如:选股条件设为“市值小于100亿”,买入条件设为“MACD金叉”等),就能自动生成一个可以运行的量化策略。

为什么帮助文档里找不到?

  • 定位不同:你查看的《JoinQuant API 文档》是面向纯代码开发者的,里面记录的是底层的数据获取函数(如 get_priceget_fundamentals)和交易函数(如 order)。
  • 黑盒封装:向导式工具为了把用户的“点击操作”转化为 Python 代码,在底层写了一套专门的转换库,也就是 kuanke.wizard。这个库把很多基础 API 进行了二次甚至三次封装(比如把获取数据和排序封装成了 get_sort_dataframe)。官方认为这部分代码是机器生成的“黑盒”,不需要用户去手动调用,所以没有将其列入开发者 API 文档中。

总结与建议

如果你只是用向导式工具点选策略,那么不需要关心这些代码;但既然你已经开始阅读代码并寻找函数文档,说明你正在向纯代码量化开发进阶。

建议你逐步放弃使用向导式生成的代码框架(即放弃 from kuanke.wizard import *。向导式生成的代码往往冗长且难以调试。你可以参考官方 API 文档中的【策略示例】(如均线策略、多股票持仓示例),从头开始使用标准的 initializehandle_data 以及原生的 Pandas 库来编写策略,这样你的量化之路会走得更远、更扎实。