加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

数据科学家的命令行技巧

发布时间:2018-08-16 01:24:16 所属栏目:教程 来源:Tocy, kevinlinkai, 边城, 琪花亿草, 雪
导读:技术沙龙 | 邀您于8月25日与国美/AWS/转转三位专家共同探讨小程序电商实战 对于许多数据科学家来说,数据操作起始于Pandas或Tidyverse。从理论上看,这个概念没有错。毕竟,这是为什么这些工具首先存在的原因。然而,对于分隔符转换等简单任务来说,这些选

多数值表达式:

  1. # Print line number and columns where column three greater 
  2. # than 2005 and column five less than one thousand 
  3.  
  4. awk -F, ' $3 >= 2005 && $5 <= 1000 { print NR, $0 } ' filename.csv 

计算第三列之和:

  1. awk -F, '{ x+=$3 } END { print x }' filename.csv 

计算那些第一列值为“something”的第三列之和。

  1. awk -F, '$1 == "something" { x+=$3 } END { print x }' filename.csv 

获取文件的行数列数:

  1. awk -F, 'END { print NF, NR }' filename.csv  
  2. # Prettier version  
  3. awk -F, 'BEGIN { print "COLUMNS", "ROWS" }; END { print NF, NR }' filename.csv 

打印出现过两次的行:

  1. awk -F, '++seen[$0] == 2' filename.csv 

移除多行:

  1. # Consecutive lines 
  2. awk 'a !~ $0; {a=$0}'] 
  3.  
  4. # Nonconsecutive lines 
  5. awk '! a[$0]++' filename.csv 
  6.  
  7. # More efficient 
  8. awk '!($0 in a) {a[$0];print} 

使用内置函数gsub()替换多个值。

  1. awk '{gsub(/scarlet|ruby|puce/, "red"); print}' 

这个awk命令合并了多个CSV文件,忽略头并在结尾追加。

  1. awk 'FNR==1 && NR!=1{next;}{print}' *.csv > final_file.csv 

需要精简一个大文件?好的,awk可以在sed的帮助下完成这件事。具体来说,基于一个行数,这个命令将一个大文件分为多个小文件。这个一行文件也会添加一个扩展名。

  1. sed '1d;$d' filename.csv | awk 'NR%NUMBER_OF_LINES==1{x="filename-"++i".csv";}{print > x}'  
  2. # Example: splitting big_data.csv into data_(n).csv every 100,000 lines  
  3. sed '1d;$d' big_data.csv | awk 'NR%100000==1{x="data_"++i".csv";}{print > x}' 

结束前

命令行拥有无穷的力量。本文所涵盖的命令行知识足以让你从零基础到入门。除了这些已涉及的内容外,针对日常数据操作还有需要可考虑的实用程序。Csvkit, xsv和q是其中三个值得关注的。如果你希望进一步深入到命令行的数据科学领域,那么请看此书。它也可以在此免费获得!

【编辑推荐】

  1. 数据科学大Battle,你站Python还是R
  2. 数据科学中的陷阱:定性变量的处理
  3. 数据科学领域,你该选 Python 还是 R ?
  4. 超级干货 :一文总览数据科学全景:定律、算法、问题类型...
  5. 用Python做数据科学时容易忘记的八个要点!
【责任编辑:未丽燕 TEL:(010)68476606】
点赞 0

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读