简单统计、数据处理的几个常用命令:频率统计,和key匹配

来源:互联网 发布:姚明nba职业生涯数据 编辑:程序博客网 时间:2024/06/06 04:02

最近常用的几个数据处理的小技巧:

1. python的collections模块的Counter方法,和shell命令的sort uniq -c 做的是相同的事情,都是日常处理非常常见的,需要统计一个集合中各个元素的出现次数。


比如:对于一个列表test_list=[1,2,2,3,3,3,4,4,4,4,5,5,5,5,5,2,2,3,3],

test_dict=dict(Counter(test_list)),可以直接得到一个字典:{'1':1,'2':4,'3':4,'4':4, '5':5}


用 uniq -c 处理文本也是同样的效果。如果要从高频到低频排序,可以sort | uniq -c | sort -r就是逆序排序了。


当然,数据量小的话,在excel,用先排序,再分组小计的方法也是一样的。


2. 匹配:用excel的vlookup,和python的字典的方法,自然是最常用的。不过,还有一个偷懒的方法,就是grep -f 的方法,比如一个大文件 a.txt,第一列是key,有一个目标的key的集合,放在b.txt里,注意,文件b里就只有key,一个key一行。那么cat a.txt | grep -f b.txt > filtered_result.txt,就可以得到a中所有符合b中key的行。好处是比python简单,也不用担心excel处理后的异常字符或者格式问题,缺点就是慢,比python的字典索引查询方法慢了不止一个数量级。



0 0
原创粉丝点击