利用awk分析data.csv中label列各取值的分布.

在终端执行head data.csv查看数据:

 name,business,label,label_name
沧州光松房屋拆迁有限公司,旧房拆迁、改造;物业服务(依法须经批准的项目,经相关部门批准后方可开展经营活动),E4,建筑装饰和其他建筑业
上海托帕化工材料有限公司,"从事化工材料领域内的技术开发、技术转让、技术咨询、技术服务、化工原材料及产品(除危险化学品、监控化学品、烟花爆竹、易制毒化学品、民用爆炸物品)、机械设备、电子产品、橡塑制品、机电设备、五金建材、日用百货的销售,从事货物及技术的进出口业务。
【依法须经批准的项目,经相关部门批准后方可开展经营活动】",F2,零售业
上海利昂节能灯具有限公司,节能灯管,节能灯配件,电子镇流器,灯具,电子产品,生产,加工,C26,电气机械和器材制造业
裕福支付有限公司海南分公司,"企业管理咨询,计算机数据处理,应用软件技术服务,会议服务,经济信息咨询",L2,商务服务业
龙川县联生农贸市场管理中心,自建农贸市场管理服务,L2,商务服务业

因为行内包含换行符的项会被分成多行(例如上面的第3,4行),所以需要结合正则匹配

cat data.csv | awk -F ',' '{if(NF>2 && $(NF-1)~/^[A-Z][0-9]/) {print $(NF-1)}}' | sort | uniq -c | sort -n -r > label_distribution.txt

-F ',' 表示根据逗号分隔;

$(NF-1)~/^[A-Z][0-9]/ 表示分隔后的倒数第二项(在此指取label列的值)需满足指定的正则匹配规则

另外,利用Pandas库对csv格式的文件做统计也很方便.

用pandas读取数据:

print df.label.value_counts()
"""
F1 622844
L2 614734
F2 493420
A1 102186
...
"""

value_counts()方法统计序列所有元素出现次数,并进行倒序.

awk结合正则匹配的更多相关文章

  1. linux sed awk seq 正则使用 截取字符 之技巧

    [root@room9pc01 ~]# seq 5 1 2 3 4 5 [root@room9pc01 ~]# seq 2 5 2 3 4 5 seq 1 2 10 1 3 5 7 9 [root@d ...

  2. nginx location 正则匹配

    nginx 统计语句1.根据访问IP统计UV awk '{print $1}' access.log|sort | uniq -c |wc -l2.统计访问URL统计PV awk '{print $7 ...

  3. 正则匹配与替换 regexp & regsub

    正则匹配是使用正则表达式匹配字符串的一种方法:在脚本编写过程中,经常需要处理一些文本,而这些文本中可能只有部分信息是有用的,我们需要从文本中提取出这些有用信息:这时候,就需要编写特定格式的正则表达式, ...

  4. 12、Linux基础--挂载磁盘步骤、流处理工具awk(正则 比较 逻辑 算数表达式 流程控制)

    笔记 1.晨考 1.用两种方法,实现将文件中的以# 开头的行把# 去掉 sed -r 's/^#//g' /etc/fstab cat /etc/fstab | tr -d '^#' 2.将文件中的H ...

  5. 正则匹配闭合HTML标签(支持嵌套)

    任何复杂的正则表达式都是由简单的子表达式组成的,要想写出复杂的正则来,一方面需要有化繁为简的功底,另外一方面,我们需要从正则引擎的角度去思考问题.关于正则引擎的原理,推荐<Mastering R ...

  6. 正则匹配抓取input 隐藏输入项和 <td>标签内的内容

    这里不多作解释了,只要提供方法,如果想了解正则匹配,就去百度. 第一条是,匹配出所有的隐藏输入域 $patern = "/<input(.*?)type=\"hidden\& ...

  7. js正则匹配的一个日常应用

    应用实例 1 /** 将段落中的 \n 转换为 <p></p>, 规范存储 */ 2 function formatParagraphForStore(val) { 3 var ...

  8. 详解一个自己原创的正则匹配IP的表达式

    这里给大家详细讲解一下一个匹配IP地址的正则表达式, 有关正则方面的知识,会在详细的讲解中提到. 在讲解之前,我先给大家介绍一下,ip地址的生成规则. IP地址,是由32位数字二进制转为四个十进制的字 ...

  9. 正则匹配中 ^ $ 和 \b 的区别

    正则匹配中 ^ $ 和 \b 的区别     ^和$分别代表字符串的开始和结束,因此^\d$只能匹配包含一个数字的字符串\b代表单词边界,其前后必须是不同类型的字符,可以组成单词的字符为一种类型,不可 ...

随机推荐

  1. kali2016.2安装后配置

    接触kali有几个月了,总是有一种浅尝辄止的感觉.因为不常用,一些常用操作时常想不起来了.为日后查找方便,特通过写博客方式来记录. 新建虚拟机,和安装其它操作系统差别不大,按提示一步一步安装.第1次安 ...

  2. Linux系统巡检项目

    系统检测 1.检查系统类型 2.检查发行版本 3.检查内核版本 4.检查主机名称 5.检查是否启用SElinux 6.检测默认的语言/编码 7.检测uptime 8.检测最后启动时间等 CPU检查 1 ...

  3. prometheus statsd 监控

    Prometheus是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的.随着发展,越来越多公司和组织接受采用Prometheus,社会也十分活跃,他们 ...

  4. 讲一下numpy的矩阵特征值分解与奇异值分解

    1.特征值分解 主要还是调包: from numpy.linalg import eig 特征值分解:  A = P*B*PT  当然也可以写成 A = QT*B*Q  其中B为对角元为A的特征值的对 ...

  5. HAproxy的安装配置及动静分离

    /////////////////////////////目录//////////////////////////////////////////一.安装HAproxy二.编写HAproxy启动脚本三 ...

  6. Mac下配置NDK环境

    下载NDK 这里写图片描述配置NDK开发环境 第一步:打开Mac终端 Snip20170208_1.png 第二步:在终端中输入:open -e .bash_profile,打开.bash_profi ...

  7. maven笔记(3)

    项目管理利器(Maven)——Pom.xml解析 <name>项目的描述名</name> <url>项目的地址</url> <descriptio ...

  8. JS/jQuery 遍历对象属性

    Javascript For/In 循环: 循环遍历对象的属性 var person={fname:"John",lname:"Doe",age:25}; fo ...

  9. 代码题 — 剑指offer题目、总结

    剑指offer题目总结:  https://www.cnblogs.com/dingxiaoqiang/category/1117681.html 版权归作者所有,任何形式转载请联系作者.作者:马孔多 ...

  10. poj2007极角排序

    裸的极角排序,但是要把0,0放在第一个(话说这题题目真是巨长,废话也多...) #include<map> #include<set> #include<cmath> ...