测试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 

原文地址:https://www.cnblogs.com/koujiaodahan/p/15604487.html