探讨的场景:
1、数据源:取出大量指标或其他需要计算统计的原始数据文件(txt、csv等类型),几十或几百个甚至更多,当前这个例子为小时级的小区指标文件;2、存在的问题,很难再短时间内对大量的数据计算出需要需要的结果;需求:取出每个月,每个小区<最大RRC连接数>的最大的三天数据和其对应的其他指标;(迭代分组取TOPN的问题)即:第一次分组计算:取出每个小区每天24小时中,哪个时段的<最大RRC连接数>的值最大,并记录下这个时段(即自忙时);第二次分组计算:以第一次分组结算的结果,作为数据源,取每个月中,每个小区<最大RRC连接数>最大的前三天对应的指标数据;3、解决方案:
对于数据量比较大的场景,使用单机关系型数据库实现迭代分组的功能,耗时较长,有兴趣的朋友可以尝试一下,oracle里面的开窗函数可以解决此类场景的问题,但是具体性能如何,没有尝试过。单机mysql貌似没有能够有高性能的解决方案,我自己尝试过好几种写法,都无法避免索引失效导致的全表扫描问题;但无论如何,文件导入数据库的过程必然耗费大量时间。
4、业务流程:
5、代码过程落地:
6、源码:
源码.rar
7、视频说明:
链接:[url]https://pan.baidu.com/s/1cer_qm6I2AC_69AgLZuotA [/url];
提取码:2aqj
支持原创
源码没法下载啊
太牛逼了;谢谢
牛逼不是一般般的
请问这个软件是您编写的吗?
我也在学python,想向您学习一下方法和方向,请帮忙加一下微信号,谢谢!
我的微信号是:horizon2
用pandas貌似也简单
data结构如下:
date_id cell a b c
0 2019-01-01 cella 39 17 786
1 2019-01-02 cella 66 569 882
2 2019-01-03 cella 16 850 960
3 2019-01-01 cellb 40 427 742
4 2019-01-02 cellb 9 578 78
5 2019-01-03 cellb 14 620 831
6 2019-01-01 cellc 67 333 831
7 2019-01-02 cellc 68 289 92
8 2019-01-03 cellc 59 508 264
取每个cell的a列top2时对应行的数据:
df = pd.read_csv('data.csv')
df['num'] = df['a'].groupby(df['cell']).rank(ascending=0,method='first')
df[df.num <=2]
是的
会编程的不搞网优,搞网优的都没有会编程的 ,你懂这个,你就是高手中的高手.........
利用新起的编程语言,厉害!
厉害,学习一下
牛人啊,这玩应也能整出来;
(勾选中文件为要删除文件)
您即将访问的地址是其它网站的内容,MSCBSC将不再对其安全性和可靠性负责,请自行判断是否继续前往
继续访问 取消访问,关闭