如何查看文件是否为csv格式_不会编程,如何处理表格数据

61dc28d723363dfa21d3cacca234a772.png
生物信息软件通常会生成一个表格格式的结果,例如blast比对的m8格式,各种gff,gtf,bed,bam,vcf等文件,都是标准类型的结构化数据,经常需要对这些表格进行各种处理,包括截取固定的行,列,根据某一列值进行过滤,或者排序,筛选,合并,拆封等等操作,这些都是Excel的日常操作,但是当数据太大时,利用Excel有些吃力,那么就可以使用一些工具来进行处理,这里我们推荐大家一款csvkit工具,专门用于处理CSV格式的结果。

不会编程,如何快速截取序列

不会编程,如何进行批量操作

不会编程,如何快速提取序列

CSV格式

CSV是Comma-Separated Values,的简称,是数据分析中常用的一种格式,与之类似的是一种TSV格式(Tab-Separated Values)。因为当一些值之间有空格的时候,不适合使用tab进行分割,那么就采用逗号分割。Excel可以直接打开CSV格式的结果,如果使用纯文本工具打开,则可以看到很多逗号分割符。

state,county,fips,nsn,item_name,quantity,ui,acquisition_cost,total_cost,ship_date,federal_supply_category,federal_supply_category_name,federal_supply_class,federal_supply_class_name
NE,ADAMS,31001.0,1005-00-589-1271,"RIFLE,7.62 MILLIMETER",1.0,Each,138.0,138.0,2008-07-11,10.0,WEAPONS,1005.0,"Guns, through 30 mm"
NE,ADAMS,31001.0,1005-00-589-1271,"RIFLE,7.62 MILLIMETER",1.0,Each,138.0,138.0,2008-07-11,10.0,WEAPONS,1005.0,"Guns, through 30 mm"
NE,ADAMS,31001.0,1005-00-589-1271,"RIFLE,7.62 MILLIMETER",1.0,Each,138.0,138.0,2008-07-11,10.0,WEAPONS,1005.0,"Guns, through 30 mm"

csvkit

csvkit顾名思义,是专门用来处理CSV格式结果的工具包,里面包含了很多相关的工具。

  • in2csv
  • sql2csv
  • csvclean
  • csvcut
  • csvgrep
  • csvjoin
  • csvsort
  • csvstack
  • csvformat
  • csvjson
  • csvlook
  • csvpy
  • csvsql
  • csvstat

下载安装

链接地址:https://csvkit.readthedocs.io/en/1.0.3/
软件的安装比较容易,csvkit是一个python工具,直接使用pip即可在线安装。

sudo pip install csvkit

csvkit软件一个不太友好的地方是,这些工具都是单独存在的,而不像bwa或者samtools这种,将所有工具集合在一个软件菜单中。

案例介绍

软件说明链接:https://csvkit.readthedocs.io/en/1.0.3/tutorial/1_getting_started.html#getting-the-data
下载测试数据

curl -L -O https://raw.githubusercontent.com/wireservice/csvkit/master/examples/realdata/ne_1033_data.xlsx

1 in2csv将Excel转换为CSV

默认Excel采用xlsx格式,是二进制文件,需要转换为csv格式的文本文件才可以使用csvkit工具。

in2csv ne_1033_data.xlsx > data.csv

2 csvlook查看文件

csvlook会用一种很友好的方式显示文件,而不是逗号分割。

$ csvlook data.csv | less -S
| state | county     |   fips | nsn              | item_name                                     
| ----- | ---------- | ------ | ---------------- | ----------------------------------------------
| NE    | ADAMS      | 31,001 | 1005-00-589-1271 | RIFLE,7.62 MILLIMETER                         
| NE    | ADAMS      | 31,001 | 1005-00-589-1271 | RIFLE,7.62 MILLIMETER                         

3 csvcut数据切割

输出行号

$ csvcut -n data.csv
 1: state
 2: county
 3: fips
 4: nsn
 5: item_name
 6: quantity
 7: ui
 8: acquisition_cost
 9: total_cost
10: ship_date
11: federal_supply_category
12: federal_supply_category_name
13: federal_supply_class
14: federal_supply_class_name

输出固定的列,类似于Linux cut -f或者awk的功能

$ csvcut -c 2,5,6 data.csv |head 
county,item_name,quantity
ADAMS,"RIFLE,7.62 MILLIMETER",1.0
ADAMS,"RIFLE,7.62 MILLIMETER",1.0
ADAMS,"RIFLE,7.62 MILLIMETER",1.0
ADAMS,"RIFLE,7.62 MILLIMETER",1.0
ADAMS,"RIFLE,7.62 MILLIMETER",1.0

根据名字进行输出固定的列,类似于R语言的数据框$符索引

csvcut -c county,item_name,quantity data.csv

4 csvstat数据统计

csvcut -c county,acquisition_cost,ship_date data.csv | csvstat

5 数据筛选

csvcut -c county,item_name,total_cost data.csv | csvgrep -c county -m LANCASTER | csvlook

6 数据排序

csvcut -c county,item_name,total_cost data.csv | csvgrep -c county -m LANCASTER | csvsort -c total_cost -r | csvlook

除此之外,csvkit工具包中,还包括csvjoin,csvstack,csvsql等工具,可以实现数据合并,Excel数据透视表等功能,更多技巧可以查看软件帮助文档。购买服务器账号的用户将测试数据拷贝至个人目录下练习。

cp -R /ifs1/Example/66.csvkit/ $HOME
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值