利用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. poj_2528 Mayor's posters (线段树经典题+离散化方法)

    由于题面中给定的wall最大长度为10 000 000:若简单用线段树势必会超时. 而注意到题面中规定了输入海报的个数<=1000:因此不妨离散化,使得线段中叶节点仅含有1000个,那么线段最大 ...

  2. SonarQube介绍及部署

    SonarQube介绍及部署 编写人:罗旭成 编写时间:2014-5-28 SonarQube简介 SonarQube是一个用于代码质量管理的开源平台(Java开发),用于管理源代码的质量,可以从七个 ...

  3. Generator 函数的异步应用

    异步编程对 JavaScript 语言太重要.Javascript 语言的执行环境是“单线程”的,如果没有异步编程,根本没法用,非卡死不可.本章主要介绍 Generator 函数如何完成异步操作. 传 ...

  4. 【Python】关于使用pycharm遇到只能使用unittest方式运行,无法直接选择Run

    相信大家可能都遇到过这个问题,使用pycharm直接运行脚本的时候,只能选择unittest的方式,能愁死个人

  5. maven笔记(3)

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

  6. 蓄水池抽样算法 Reservoir Sampling

    2018-03-05 14:06:40 问题描述:给出一个数据流,这个数据流的长度很大或者未知.并且对该数据流中数据只能访问一次.请写出一个随机选择算法,使得数据流中所有数据被选中的概率相等. 问题求 ...

  7. Selenium入门练习(一)

    自主学习---上海野生动物园之登录.订票.退票 Create了一个TestNG可以查看执行结果: package FristTestNG; import java.sql.Driver; import ...

  8. Android数据库框架-----ORMLite 的基本用法

    ORMLite 是一款非要流行的Android平台上的数据库框架,性能优秀,代码简洁: 简述: 优点: 1.轻量级:2.使用简单,易上手:3.封装完善:4.文档全面. 缺点:1.基于反射,效率较低(本 ...

  9. 使用jenkins自动构建docker容器范例

    1.登录Jenkins,新建一个自由风格的软件项目. 2.源码管理选择git,并添加Repository URL.Credentials 3.构建选择 Execute Shell,命令如下: dock ...

  10. phpMyAdmin 应用程序“DEFAULT WEB SITE”中的服务器错误

    分析原因:没有“C:\inetpub\wwwroot\phpmyadmin\”此目录 解决办法:新建路径 分析原因:IIS设置少了一项,需添加"服务端包含"选项 解决办法:控制面板 ...