Data Science & Analysis
183 commands
datamash --header-in sum 4 < data.tsvdatamash -t, --header-in sum 4 < data.csvdatamash -t, --header-in mean 2 median 2 pstdev 2 < data.csvdatamash -t, --header-in -g 3 mean 4 < data.csvdatamash -t, --header-in perc:95 4 < data.csvdatamash -t, --header-in -s -g 3 mean 4 < data.csvdatamash -H -t, --header-in sum 4 < data.csvdatamash -t, --header-in q1 2 q3 2 iqr 2 < data.csvdatamash -t, --header-in unique 3 countunique 3 < data.csvdatamash -t, --header-in -g 3 collapse 1 < data.csvdatamash -t, --header-in geomean 2 harmmean 2 < data.csvdatamash -t, --header-in trimmean:0.1 2 < data.csvdatamash -t, --header-in pstdev 2 pvar 2 svar 2 mad 2 < data.csvdatamash -t, --header-in spearson 2:4 < data.csvdatamash -t, --header-in pcov 2:4 < data.csvdatamash -t, --header-in range 2 absmax 2 < data.csvdatamash -t, --header-in -g 3 count 4 sum 4 min 4 max 4 < data.csvdatamash -t, --header-in -g 3 trimmean:0.1 4 < data.csvdatamash -t, transpose < data.csvdatamash -t, check < data.csvdatamash --no-strict -t, sum 1 < ragged.csvmlr --csv head -n 5 data.csvmlr --csv stats1 -a mean,min,max -f score data.csvmlr --csv stats1 -a sum,mean -f salary -g dept data.csvmlr --csv sort -f age data.csvmlr --csv sort -nr score data.csvmlr --csv sort -f dept -nr salary data.csvmlr --csv filter '$age > 30' data.csvmlr --csv cut -f name,age data.csvmlr --csv put '$ratio = $salary / $score' data.csvmlr --csv put -S '$pct = $score * 100' data.csvmlr --csv put '$ts = sec2gmt(1700000000)' data.csvmlr --icsv --ojson cat data.csvmlr --icsv --ojsonl cat data.csvmlr --json head -n 1 data.jsonmlr --json tail -n 2 data.jsonmlr --csv join -f emp-ids.csv -j name data.csvmlr --csv nest --explode --values --across-records -f tags tags.csvmlr --csv uniq -a data.csvmlr --csv uniq -g dept data.csvmlr --csv count-distinct -f dept data.csvmlr --csv count-distinct -n -f dept data.csvmlr --csv top -n 5 -f score data.csvmlr --csv rename name,employee data.csvmlr --csv tac data.csvmlr --csv sample -k 2 data.csvmlr --csv reorder -f name,score data.csvmlr --csv merge-fields -a sum -f salary,score -o total data.csvmlr --csv histogram -f score --lo 0.7 --hi 1.0 --nbins 3 data.csvmlr --csv step -a delta -f score data.csvprintf 'a,b,c\n1,,3\n' | mlr --csv remove-empty-columnsxsv headers data.csvxsv stats data.csvxsv stats --median --mode data.csvxsv stats -s age,salary data.csvxsv select name,age data.csvxsv search eng data.csvxsv frequency -s dept data.csvxsv table data.csvxsv slice -s 2 -e 4 data.csvxsv sort -s age data.csvxsv join name data.csv name emp-ids.csvxsv count data.csvxsv sample 3 data.csvxsv flatten data.csvxsv fmt -t '|'xsv cat rows a.csv b.csvxsv cat columns a.csv b.csvxsv input -d '|'xsv index data.csvxsv split --size 2 split data.csvxsv partition dept part data.csvxsv fixlengths data.csvcsvcut -n data.csvcsvcut -c name,age data.csvcsvstat data.csvcsvstat --mean data.csvcsvstat --median data.csvcsvstat --json data.csvcsvgrep -c name -m 'alice' data.csvcsvgrep -c name -r '^a' data.csvcsvgrep -i -c dept -m 'ENG' data.csvcsvjoin --left -c name data.csv emp-ids.csvcsvsort -c age data.csvcsvsort -c age -r data.csvcsvstack a.csv b.csvcsvstack -g one,two a.csv b.csvcsvlook data.csvcsvformat -T data.csvcsvformat -D '|' data.csvcsvpy data.csvcsvsql --query 'SELECT dept, AVG(salary) FROM data GROUP BY dept' data.csvcsvsql --query 'SELECT dept, MAX(salary) AS top FROM data GROUP BY dept' data.csvcsvsql --db sqlite:///test.db --insert data.csvcsvjson data.csvcsvjson --indent 2 data.csvin2csv -f json api.jsonin2csv data.xlsxin2csv --sheet Sheet2 book.xlsxjq 'group_by(.dept) | map({dept: .[0].dept, total: map(.salary) | add})' data.jsonjq -r '.[] | [.name, .age] | @tsv' data.jsonjq 'map(select(.age > 30))' data.jsonjq 'sort_by(.age) | reverse | .[0]' data.jsonjq 'length' data.jsonjq -n '{sum: (100 + 200)}'jq '.[0] | keys' data.jsonjq --arg v alice '.[] | select(.name == $v)' data.jsonjq '.results[0:2] | map(.title)' data.jsonjq 'to_entries[] | "\(.key): \(.value)"' object.jsonjq -c '.[]' data.jsonjupyter lab --no-browser --port 8888jupyter notebook --no-browserjupyter nbconvert --to html notebook.ipynbjupyter nbconvert --to markdown notebook.ipynbjupyter nbconvert --to script notebook.ipynbjupyter nbconvert --execute --to notebook --inplace notebook.ipynbjupyter nbconvert --clear-output --inplace notebook.ipynbjupyter nbconvert --to pdf notebook.ipynbjupyter kernelspec listjupyter kernelspec install --user ./mykerneljupyter trust notebook.ipynbipython -c 'print(2**10)'ipython --pdbipython --matplotlibgnuplot -e 'set terminal pngcairo; set output "out.png"; set datafile separator ","; plot "data.csv" using 2:4 with lines'gnuplot -e 'set terminal svg; set output "out.svg"; set datafile separator ","; plot "data.csv" using 2:4 with lines'gnuplot -e 'set terminal pngcairo size 1200,800; set output "big.png"; set datafile separator ","; plot "data.csv" using 2:4 with lines'gnuplot -e 'set terminal pngcairo; set output "hist.png"; set datafile separator ","; plot "data.csv" using 4 smooth frequency with boxes'gnuplot -e 'set terminal pngcairo; set output "scatter.png"; set datafile separator ","; plot "data.csv" using 2:4 with points pt 7'gnuplot -e 'set terminal pngcairo; set output "log.png"; set logscale y; set datafile separator ","; plot "data.csv" using 2:4 with lines'gnuplot -e 'set terminal pngcairo; set output "lab.png"; set title "Age vs Salary"; set xlabel "Age"; set ylabel "Salary"; set datafile separator ","; plot "data.csv" using 2:4 with lines'gnuplot -e 'set datafile separator ","; plot "data.csv" using 2:4 with lines' -pgnuplot analyze.gpgnuplot -e 'set terminal dumb size 60,20; plot sin(x)'Rscript -e 'summary(read.csv("data.csv"))'Rscript -e 'x <- c(1,2,3); print(mean(x))'Rscript -e 'df <- read.csv("data.csv"); print(tapply(df$salary, df$dept, mean))'Rscript -e 'df <- read.csv("data.csv"); png("rplot.png"); plot(df$age, df$salary); dev.off()'Rscript --vanilla -e 'print(1+1)'Rscript -e 'df <- read.csv("data.csv"); print(quantile(df$salary))'Rscript -e 'df <- read.csv("data.csv"); print(cor(df$age, df$salary))'Rscript -e 'df <- read.csv("data.csv"); print(head(df, 3))'Rscript -e 'df <- read.csv("data.csv"); print(table(df$dept))'Rscript -e 'df <- read.csv("data.csv"); print(summary(lm(salary ~ age, data = df))$coefficients)'Rscript -e 'df <- read.csv("data.csv"); png("rhist.png"); hist(df$salary, main="Salary distribution"); dev.off()'Rscript analyze.RRscript -e 'x <- rnorm(1000, mean=50, sd=10); print(summary(x))'Rscript -e 'df <- read.csv("data.csv"); print(colMeans(df[c("age","salary","score")]))'sqlite3 data.db -header -column 'SELECT dept, COUNT(*), AVG(salary) FROM employees GROUP BY dept;'sqlite3 data.db '.mode csv' 'SELECT * FROM employees;' > employees.csvsqlite3 data.db -csv 'SELECT * FROM employees LIMIT 2;'sqlite3 :memory: 'CREATE TABLE t(x); INSERT INTO t VALUES (42); SELECT x*2 FROM t;'sqlite3 data.db 'SELECT * FROM employees ORDER BY CAST(salary AS INTEGER) DESC LIMIT 2;'sqlite3 data.db 'WITH s AS (SELECT dept, AVG(salary) AS a FROM employees GROUP BY dept) SELECT * FROM s WHERE a > 70000;'sqlite3 data.db 'SELECT dept, ROUND(AVG(salary),2) AS avg_salary FROM employees GROUP BY dept ORDER BY avg_salary DESC;'echo 'scale=4; 22/7' | bc -lecho 'sqrt(144)' | bc -lseq 1 10 | paste -sd+ | bcnumfmt --to=si 1500000numfmt --to=iec --suffix=B 1048576paste -sd, list.txtcomm -23 x1.txt x2.txtjoin -t, -1 1 -2 1 ids.s.csv scores.s.csvjoin -t, -1 1 -2 1 <(sort -t, -k1,1 ids.csv) <(sort -t, -k1,1 scores.csv)split -l 10 big.csv chunk_shuf -n 2 data.csvfactor 123456789seq 1 10 | awk '{s+=$1} END {print s}'sort -t, -k4 -nr data.csv | head -2awk -F, 'NR>1 {s+=$4; n++} END {print s/n}' data.csvawk -F, 'NR>1 {a[$3]+=$4} END {for (k in a) print k, a[k]}' data.csvcut -d, -f3 data.csv | sort | uniq -c | sort -nrtail -n +2 data.csv | head -2tr ',' '\t' < data.csv | head -2paste <(cut -d, -f1 data.csv) <(cut -d, -f4 data.csv) | head -2echo 'analysis step 1' | ts '%F %T'sort sp.txt | sponge sp.txtpython3 -c 'import pandas as pd; df=pd.read_csv("data.csv"); print(df.describe())'python3 -c 'import pandas as pd; df=pd.read_csv("data.csv"); print(df.groupby("dept")["salary"].mean())'python3 -c 'import pandas as pd; df=pd.read_csv("data.csv"); print(df[df.age > 30])'python3 -c 'import pandas as pd; df=pd.read_csv("data.csv"); print(df.sort_values("salary", ascending=False).head(3))'python3 -c 'import numpy as np; print(np.mean([1,2,3,4]))'python3 -m pip install pandas numpy matplotlib