题目很清晰,直接上python代码

  1. import pandas as pd
  2. import copy
  3.  
  4. class BenchMark:
  5. def __init__(self):
  6. self.MIN = 10000
  7. self.data = 0
  8. def Reset(self):
  9. self.MIN = 10000
  10. self.data = 0
  11.  
  12. dictCounts = {}
  13. dictTop10_D2C = {}
  14. BENCH_MARK = BenchMark()
  15. LAST_BENCH_MARK = BenchMark()
  16. run_count1 = 0
  17. run_count2 = 0
  18.  
  19. def FindTop10(data):
  20. global BENCH_MARK, LAST_BENCH_MARK,run_count1,run_count2
  21. if(data in dictCounts):
  22. dictCounts[data] += 1
  23. else:
  24. dictCounts[data] = 1
  25.  
  26. temp = dictCounts[data]
  27.  
  28. #just record run times
  29. run_count1 += 1
  30.  
  31. if LAST_BENCH_MARK.MIN != 10000 and temp< LAST_BENCH_MARK.MIN:
  32. return
  33.  
  34. dictTop10_D2C[data] = temp
  35.  
  36. if len(dictTop10_D2C)>10:
  37. BENCH_MARK.Reset()
  38. for item in dictTop10_D2C:
  39.  
  40. #just record run times
  41. run_count2+=1
  42.  
  43. if dictTop10_D2C[item] < BENCH_MARK.MIN:
  44. BENCH_MARK.MIN = dictTop10_D2C[item]
  45. BENCH_MARK.data = item
  46. LAST_BENCH_MARK = copy.deepcopy(BENCH_MARK)
  47. dictTop10_D2C.pop(BENCH_MARK.data)
  48.  
  49. def PrintData2Count(aDict):
  50. for key in aDict:
  51. print('%.1f:%d' % (key, aDict[key]))
  52.  
  53. if __name__ == '__main__':
  54. df = pd.read_csv('D:/data/ctp_data/rb/201709/rb1801_20170905.csv')
  55. for data in df['LastPx']:
  56. FindTop10(data)
  57.  
  58. PrintData2Count(dictCounts)
  59. print("==============dictCounts length:", len(dictCounts))
  60. PrintData2Count(dictTop10_D2C)
  61.  
  62. print("run_count1:%d,run_count2:%d" %(run_count1,run_count2))

运行结果如下:

。。。。。。

4121.0:206
4123.0:278
4124.0:180
4122.0:244
4125.0:118
4126.0:34
4127.0:4
4081.0:1366
4080.0:1073
4077.0:1072
4078.0:1091
4079.0:800
4076.0:874
4075.0:886
4074.0:1108
4071.0:719
4073.0:1281
4072.0:1049
4070.0:567
4069.0:442
4068.0:290
4067.0:199
4066.0:204
4065.0:109
4064.0:60
4063.0:80
4062.0:57
4061.0:70
4060.0:70
4059.0:32
4057.0:6
4058.0:22
4129.0:6
4137.0:2
4135.0:2
4133.0:2
==============dictCounts length: 75
4109.0:2080
4108.0:2047
4095.0:3009
4096.0:2785
4094.0:2265
4099.0:2573
4098.0:2702
4097.0:2491
4100.0:2147
4107.0:1809
run_count1:70684,run_count2:19679

找出n个数中重复最多的10个数的更多相关文章

  1. 找出一堆数中最小的前K个数

    描写叙述: 给定一个整数数组.让你从该数组中找出最小的K个数 思路: 最简洁粗暴的方法就是将该数组进行排序,然后取最前面的K个数就可以. 可是,本题要求的仅仅是求出最小的k个数就可以,用排序能够但显然 ...

  2. 485. 找出二进制串中连续的1的个数 Max Consecutive Ones

    Given a binary array, find the maximum number of consecutive 1s in this array. Example 1: Input: [1, ...

  3. 请找出"aaaabbcccdddd"字符串中出现最多的字母

    function getCount(str) { for(var code=32;code<128;code++){ var mych=String.fromCharCode(code); va ...

  4. [PY3]——找出一个序列中出现次数最多的元素/collections.Counter 类的用法

    问题 怎样找出一个序列中出现次数最多的元素呢? 解决方案 collections.Counter 类就是专门为这类问题而设计的, 它甚至有一个有用的 most_common() 方法直接给了你答案 c ...

  5. 笔试题&amp;面试题:找出一个数组中第m小的值并输出

    题目:找出一个数组中第m小的值并输出. 代码: #include <stdio.h> int findm_min(int a[], int n, int m) //n代表数组长度,m代表找 ...

  6. 一个N*M的矩阵,找出这个矩阵中所有元素的和不小于K的面积最小的子矩阵

    题目描述: 一个N*M的矩阵,找出这个矩阵中所有元素的和不小于K的面积最小的子矩阵(矩阵中元素个数为矩阵面积) 输入: 每个案例第一行三个正整数N,M<=100,表示矩阵大小,和一个整数K 接下 ...

  7. 【leetcode-03】给定一个字符串,请你找出其中不含有重复字符的最长子串的长度

    开个新坑,leetcode上面做题目.下面是题目描述: <!-- 给定一个字符串,请你找出其中不含有重复字符的最长子串的长度. 示例 1: 输入: "abcabcbb" 输出 ...

  8. LeetCode 5071. 找出所有行中最小公共元素(Java)

    题目:5071. 找出所有行中最小公共元素 给你一个矩阵 mat,其中每一行的元素都已经按 递增 顺序排好了.请你帮忙找出在所有这些行中 最小的公共元素. 如果矩阵中没有这样的公共元素,就请返回 -1 ...

  9. Entity Framework 6 Recipes 2nd Edition(9-3)译->找出Web API中发生了什么变化

    9-3. 找出Web API中发生了什么变化 问题 想通过基于REST的Web API服务对数据库进行插入,删除和修改对象图,而不必为每个实体类编写单独的更新方法. 此外, 用EF6的Code Fri ...

随机推荐

  1. 配置MAVEN环境变量

    在配置maven前一定要先配置java jdk 的环境变量 和java配置一样 先写一个MAVEN_HOME:F:\java\apache-maven-3.5.2 (就是你maven 的下载位置) 写 ...

  2. 5--Selenium环境准备--firefox与geckodriver

    selenium2时打开firefox浏览器是不需要安装firefoxdriver的,但是selenium3不支持向前支持火狐浏览器了,40以后版本的火狐,运行会出现问题. 1.下载geckodriv ...

  3. 微软Power BI 每月功能更新系列——8月Power BI 新功能学习

    Power BI Desktop 8月新功能摘要 Power BI 产品八月发布的新版本又刷新了大家所期待的一些功能,它可以更方便的解决我们从用户那里听到的一些最重要的请求:其中最令人兴奋的是我们的导 ...

  4. Ubuntu16.04换源(转)

    乌班图换源(ubuntu 16.04换阿里云源为例) 换成国内最快的阿里云源 第一步:备份原来的源文件 cd /etc/apt/ 1 2 然后会显示下面的源文件sources.list 输入命令 su ...

  5. xdoj新生现场赛1269——带有限制条件的bfs 寻找最短路径

    bfss是解决最短路径的强大武器 (尝试dfs寻找最短路径 -(7*7)就会爆炸) 例题1  ccf 201604-4  游戏 问题描述 小明在玩一个电脑游戏,游戏在一个n×m的方格图上进行,小明控制 ...

  6. ZOJ 1002:Fire Net(DFS+回溯)

    Fire Net Time Limit: 2 Seconds      Memory Limit: 65536 KB Suppose that we have a square city with s ...

  7. 一个简单的 openssl 示例

    ////生成一个私钥////$key=openssl_pkey_new();openssl_pkey_export($key,$out);//等于下面写入的内容////将私钥写入一个文件////ope ...

  8. C语言常用命令

    ## 基本流程:创建——编辑——编译.链接——执行$ touch 1-1.c$ vim 1-1.c # include <stdio.h>int main{printf("... ...

  9. Linux配置java环境变量 【随手记】

    JAVA环境变量 1. PATH环境变量.作用是指定命令搜索路径,在shell下面执行命令时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序. 2. CLASSPATH环境变量.作用是 ...

  10. generator插件配置方式使用

    generator插件配置方式使用 <build> <plugins> <plugin> <groupId>org.mybatis.generator& ...