测试csvkit 操作csv
安装:
virtualenv csvhandle
source csvhandle/bin/activate
pip install csvkit
cd csvhandle
mkdir test
cd test
测试:软件在对转码方面做的不到位。
../bin/in2csv 不能转换含中文的excel到csv
处理csv文件
测试数据
.../bin/csvlook 会打印出来文件内容,但不能接管道符。.../bin/csvlook|less报UnicodeEncodeError: 'ascii' codec can't encode characters.对内容格式(文本/数字)敏感(如把0自作聪明识别成False),不要用这个命令,用 ../bin/csvcut SPTK211110003_test1.csv 原汁原味显示。
../bin/csvcut -n SPTK211110003_test.csv 读取表头,正常
../bin/csvcut -c 按列名或列号取特定列。注:对中文列名不能识别
2>统计、操作数据:
2.1 取三列出来,两列是文本,一列是数值。
2.2 理解、操作数据
1)csvstat看常用统计量,参考R语言的summary() 。csvstat自动识别列变量类型,并出具不同的统计结果
../bin/csvcut -c 2,9,12 SPTK211110003_test1.csv |csvstat
2)csvgrep查找在指定列中匹配到的行。如只看结果列匹配是B的行:../bin/csvcut -c 2,9,12 SPTK211110003_test1.csv |csvgrep -c 3 -m B
更屌的是,csvgrep配合-r支持正则表达式 ../bin/csvcut -c 2,9,12 SPTK211110003_test1.csv |csvgrep -c 3 -r [AB]
3) csvsort 按某列正/倒排序 ../bin/csvcut -c 2,9,12 SPTK211110003_test1.csv |../bin/csvgrep -c 3 -r [A-B]|../bin/csvsort -c 2 -r # -r 从大到小排序
3. 对多个csv 按某列横向拼接(不如R语言),纵向merge.
1)../bin/csvjoin -c 客户样本名称 SPTK211110003_test1_1_2.csv SPTK211110003_test1_2_9_12.csv 可惜不能识别中文列名【客户样本名称】,也不能按列号。
2)堆叠多个文件,后边文件会粗暴的自动删除第一行后接在后边。./bin/csvstack SPTK211110003_test1.csv SPTK211110003_test1_cp.csv
本文来自博客园,作者:BioinformaticsMaster,转载请注明原文链接:https://www.cnblogs.com/koujiaodahan/p/15604487.html
posted on 2021-11-25 19:45 BioinformaticsMaster 阅读(89) 评论(0) 编辑 收藏 举报