csvkit安裝
- 使用pip安裝:運(yùn)行以下命令
sudo pip install csvkit
- 在wsl使用pip安裝,經(jīng)測(cè)試不能正常識(shí)別,故使用apt安裝:運(yùn)行以下命令
sudo apt install csvkit
csvkit使用
- 將excel文件轉(zhuǎn)換為csv:運(yùn)行以下命令
in2csv data.xls > data.csv
- 將json文件轉(zhuǎn)換為csv:運(yùn)行以下命令
in2csv data.json > data.csv
- 屏幕打印csv列名:運(yùn)行以下命令
csvcut -n data.csv
- 從data.csv獲取由column_a,column_c兩列構(gòu)成的子文件new.csv:運(yùn)行以下命令
csvcut -c column_a,column_c data.csv > new.csv
- 重新排列csv列,將順序由1/2/3變?yōu)?/2/1,結(jié)果存儲(chǔ)至new.csv:運(yùn)行以下命令
csvcut -c column_3,column_2,column_1 data.csv > new.csv
- 獲得列column_3中與字符串a(chǎn)bc(可用正則表達(dá)式)匹配的行,結(jié)果存儲(chǔ)至new.csv:運(yùn)行以下命令
csvgrep -c column_3 -r "abc" data.csv > new.csv
- 將csv轉(zhuǎn)換為json,結(jié)果存儲(chǔ)至new.csv:運(yùn)行以下命令
csvjson data.csv > data.json
- 統(tǒng)計(jì)csv中每一列的一些簡(jiǎn)單信息:運(yùn)行以下命令
csvstat data.csv
- 數(shù)據(jù)類型Type of data: Number
- 包含空值Contains null values: False
- 唯一值數(shù)量Unique values: 200000
- 最小值Smallest value: 0
- 最大值Largest value: 199999
- 和Sum: 19999900000
- 平均數(shù)Mean: 99999.5
- 中位數(shù)Median: 99999.5
- 標(biāo)準(zhǔn)差StDev: 57735.171256
- 常見(jiàn)值Most common values: 0 (1x);2 (1x);3 (1x) ;4 (1x)
- 使用SQL語(yǔ)句查詢,結(jié)果存儲(chǔ)至new.csv:運(yùn)行以下命令
csvsql --query "select name from data where age > 30" data.csv > new.csv
- 導(dǎo)入到數(shù)據(jù)庫(kù):運(yùn)行以下命令
csvsql --db postgresql:///database --insert data.csv
- 從數(shù)據(jù)庫(kù)提取數(shù)據(jù),結(jié)果存儲(chǔ)至new.csv:運(yùn)行以下命令
sql2csv --db postgresql:///database --query "select * from data" > new.csv
csvkit進(jìn)階使用
- 通過(guò)fips列來(lái)連接兩個(gè)csv表,結(jié)果存儲(chǔ)至joined.csv:運(yùn)行以下命令
csvjoin -c fips data1.csv data2.csv > joined.csv
- 將data.csv中total_cost列進(jìn)行降序排序,結(jié)果存儲(chǔ)至new.csv:運(yùn)行以下命令
csvsort -c total_cost -r data.csv > new.csv
- 將兩個(gè)csv表合并,一般為列數(shù)和列名相同,結(jié)果存儲(chǔ)至region.csv:運(yùn)行以下命令
csvstack data1.csv data2.csv > region.csv