首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我根据股票代码的首字母使用范围划分策略对数据进行划分,导致划分结果不均匀

我根据股票代码的首字母使用范围划分策略对数据进行划分,导致划分结果不均匀
EN

Stack Overflow用户
提问于 2021-07-23 16:11:22
回答 2查看 22关注 0票数 0

我根据股票代码的首字母使用范围划分策略对数据进行划分,导致划分结果不均匀。如何解决不均衡问题?

我需要根据两个维度对股票的出价数据进行划分:日期和股票代码。如果仅根据股票代码的首字母进行范围划分,由于以“U,V,X,Y,Z”开头的股票很少,因此数据分布可能不均匀。如何解决这个问题?

EN

回答 2

Stack Overflow用户

发布于 2021-07-23 16:13:03

数据分布不需要完全分散...你这样做会有多大的影响...你有没有可以被认为过于集中的“热点”?或者只有几个空的分区?

票数 1
EN

Stack Overflow用户

发布于 2021-10-21 06:37:54

为了便于根据数据的分布进行分区,DolphinDB提供了函数cutPoints(X,N,freq)。这里X是一个数组,N表示需要生成多少组,freq是X的等长数组,其中每个元素对应于元素在X中的频率。该函数返回一个包含(N + 1)个元素的数组,表示N个组,因此X中的数据均匀分布在这N个组中。在下面的示例中,您需要将股票报价数据按照日期和股票行情两个维度进行划分。如果简单地将范围除以股票的第一个字母,很容易导致数据分布不均匀,因为很少的股票刻度以U、V、X、Y、Z和其他字母开头。这里我们使用cutPoints函数,根据2007.08.01当天的数据,将股票行情分成128个分区,每个分区包含当天相同数量的记录:

代码语言:javascript
复制
t = ploadText(WORK_DIR+"/TAQ20070801.csv")
t=select count(*) as ct from t where date=2007.08.01 group by sym
bolbuckets = cutPoints(t.symbol, 128, t.ct)
dateDomain = database("", VALUE, 2017.07.01..2018.06.30)
symDomain = database("", RANGE, buckets)
stockDB = database("dfs://stockDBTest", COMPO, [dateDomain, symDomain])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68496052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档