--Open Source Tool für die einfache Handhabung und Bereinigung von CSV-Dateien für die Datenanalyse
Wenn Sie pip verwenden können, können Sie es mit der folgenden Zeile installieren
$ pip install csvkit
Weitere Informationen finden Sie auf der offiziellen Seite.
$ ls /usr/local/bin/*csv*
/usr/local/bin/csvclean /usr/local/bin/csvgrep /usr/local/bin/csvlook /usr/local/bin/csvsql /usr/local/bin/in2csv
/usr/local/bin/csvcut /usr/local/bin/csvjoin /usr/local/bin/csvpy /usr/local/bin/csvstack /usr/local/bin/sql2csv
/usr/local/bin/csvformat /usr/local/bin/csvjson /usr/local/bin/csvsort /usr/local/bin/csvstat
Es gibt ziemlich viele. Ist das alles?
$ head -n 10 iris.csv
,Sepal.Length,Sepal.Width,Petal.Length,Petal.Width,Species
1,5.1,3.5,1.4,0.2,setosa
2,4.9,3,1.4,0.2,setosa
3,4.7,3.2,1.3,0.2,setosa
4,4.6,3.1,1.5,0.2,setosa
5,5,3.6,1.4,0.2,setosa
6,5.4,3.9,1.7,0.4,setosa
7,4.6,3.4,1.4,0.3,setosa
8,5,3.4,1.5,0.2,setosa
9,4.4,2.9,1.4,0.2,setosa
csvlook
――Es formt es so, dass es leicht zu sehen und anzuzeigen ist.
--Wenn das Trennzeichen kein Komma ist, `-d" | "`
usw.
$ csvlook iris.csv | head -n 10
|------+--------------+-------------+--------------+-------------+-------------|
| | Sepal.Length | Sepal.Width | Petal.Length | Petal.Width | Species |
|------+--------------+-------------+--------------+-------------+-------------|
| 1 | 5.1 | 3.5 | 1.4 | 0.2 | setosa |
| 2 | 4.9 | 3 | 1.4 | 0.2 | setosa |
| 3 | 4.7 | 3.2 | 1.3 | 0.2 | setosa |
| 4 | 4.6 | 3.1 | 1.5 | 0.2 | setosa |
| 5 | 5 | 3.6 | 1.4 | 0.2 | setosa |
| 6 | 5.4 | 3.9 | 1.7 | 0.4 | setosa |
| 7 | 4.6 | 3.4 | 1.4 | 0.3 | setosa |
csvcut -n Wie Namen () in R.
$ csvcut -n iris.csv
1:
2: Sepal.Length
3: Sepal.Width
4: Petal.Length
5: Petal.Width
6: Species
csvcut -c Nur eine Spalte (nach Spaltennummer)
$ csvcut -c 2 iris.csv | head
Sepal.Length
5.1
4.9
4.7
4.6
5
5.4
4.6
5
4.4
Nur eine Spalte (nach Spaltennamen)
$ csvcut -c Sepal.Length iris.csv | head
Sepal.Length
5.1
4.9
4.7
4.6
5
5.4
4.6
5
4.4
Wählen Sie zwei oder mehr Spalten & csvlook
$ csvcut -c 2,4 iris.csv | csvlook | head
|---------------+---------------|
| Sepal.Length | Petal.Length |
|---------------+---------------|
| 5.1 | 1.4 |
| 4.9 | 1.4 |
| 4.7 | 1.3 |
| 4.6 | 1.5 |
| 5 | 1.4 |
| 5.4 | 1.7 |
| 4.6 | 1.4 |
Mit Ausnahme einiger Spalten & csvlook
$ csvcut -C Species iris.csv | csvlook | head
|------+--------------+-------------+--------------+--------------|
| | Sepal.Length | Sepal.Width | Petal.Length | Petal.Width |
|------+--------------+-------------+--------------+--------------|
| 1 | 5.1 | 3.5 | 1.4 | 0.2 |
| 2 | 4.9 | 3 | 1.4 | 0.2 |
| 3 | 4.7 | 3.2 | 1.3 | 0.2 |
| 4 | 4.6 | 3.1 | 1.5 | 0.2 |
| 5 | 5 | 3.6 | 1.4 | 0.2 |
| 6 | 5.4 | 3.9 | 1.7 | 0.4 |
| 7 | 4.6 | 3.4 | 1.4 | 0.3 |
csvgrep --Daten für eine Spalte unter bestimmten Bedingungen anzeigen --grep-artig
$ csvgrep -c Species -m setosa iris.csv | csvlook | head
|-----+--------------+-------------+--------------+-------------+----------|
| | Sepal.Length | Sepal.Width | Petal.Length | Petal.Width | Species |
|-----+--------------+-------------+--------------+-------------+----------|
| 1 | 5.1 | 3.5 | 1.4 | 0.2 | setosa |
| 2 | 4.9 | 3 | 1.4 | 0.2 | setosa |
| 3 | 4.7 | 3.2 | 1.3 | 0.2 | setosa |
| 4 | 4.6 | 3.1 | 1.5 | 0.2 | setosa |
| 5 | 5 | 3.6 | 1.4 | 0.2 | setosa |
| 6 | 5.4 | 3.9 | 1.7 | 0.4 | setosa |
| 7 | 4.6 | 3.4 | 1.4 | 0.3 | setosa |
Auch mit regulären Ausdrücken
$ csvgrep -c Species -r ^s.*$ iris.csv | csvlook | head
|-----+--------------+-------------+--------------+-------------+----------|
| | Sepal.Length | Sepal.Width | Petal.Length | Petal.Width | Species |
|-----+--------------+-------------+--------------+-------------+----------|
| 1 | 5.1 | 3.5 | 1.4 | 0.2 | setosa |
| 2 | 4.9 | 3 | 1.4 | 0.2 | setosa |
| 3 | 4.7 | 3.2 | 1.3 | 0.2 | setosa |
| 4 | 4.6 | 3.1 | 1.5 | 0.2 | setosa |
| 5 | 5 | 3.6 | 1.4 | 0.2 | setosa |
| 6 | 5.4 | 3.9 | 1.7 | 0.4 | setosa |
| 7 | 4.6 | 3.4 | 1.4 | 0.3 | setosa |
Auch in der Sektion
$ csvgrep -c Sepal.Length -r "[4.5-5]" iris.csv | csvlook | head
|------+--------------+-------------+--------------+-------------+-------------|
| | Sepal.Length | Sepal.Width | Petal.Length | Petal.Width | Species |
|------+--------------+-------------+--------------+-------------+-------------|
| 1 | 5.1 | 3.5 | 1.4 | 0.2 | setosa |
| 2 | 4.9 | 3 | 1.4 | 0.2 | setosa |
| 3 | 4.7 | 3.2 | 1.3 | 0.2 | setosa |
| 4 | 4.6 | 3.1 | 1.5 | 0.2 | setosa |
| 5 | 5 | 3.6 | 1.4 | 0.2 | setosa |
| 6 | 5.4 | 3.9 | 1.7 | 0.4 | setosa |
| 7 | 4.6 | 3.4 | 1.4 | 0.3 | setosa |
csvformat --Format kann wie Tabulatortrennzeichen transformiert werden
$ csvformat -T iris.csv
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
<snip>
csvjoin
csvstat »Es ist praktisch.
csvstat iris.csv
1. _unnamed
<type 'int'>
Nulls: False
Min: 1
Max: 150
Sum: 11325
Mean: 75.5
Median: 75.5
Standard Deviation: 43.3003079281
Unique values: 150
2. Sepal.Length
<snip>
csvclean ――Es wird überprüft, ob die Anzahl der Spalten korrekt ist. Wenn es kein Problem gibt, wird ** Keine Fehler ** ausgegeben.
$ csvclean iris.csv
No errors.
csvjson
$ csvjson -i 2 iris.csv | head -n 20
[
{
"": "1",
"Sepal.Length": "5.1",
"Sepal.Width": "3.5",
"Petal.Length": "1.4",
"Petal.Width": "0.2",
"Species": "setosa"
},
{
"": "2",
"Sepal.Length": "4.9",
"Sepal.Width": "3",
"Petal.Length": "1.4",
"Petal.Width": "0.2",
"Species": "setosa"
},
{
"": "3",
"Sepal.Length": "4.7",
<snip>
csvsql -i
Liste der Dinge, die konvertiert werden können
$ csvsql -h
<snip>
-i {access,sybase,sqlite,informix,firebird,mysql,oracle,maxdb,postgresql,mssql}, --dialect {access,sybase,sqlite,informix,firebird,mysql,oracle,maxdb,postgresql,mssql}
<snip>
MySQL sieht so aus
$ csvsql -i mysql iris.csv
CREATE TABLE iris (
_unnamed INTEGER NOT NULL,
`Sepal.Length` FLOAT NOT NULL,
`Sepal.Width` FLOAT NOT NULL,
`Petal.Length` FLOAT NOT NULL,
`Petal.Width` FLOAT NOT NULL,
`Species` VARCHAR(10) NOT NULL
);
in2csv --Konvertierung von Excel-Datei (.xlsx) nach CSV. Die vom Geschäftsbereich empfangenen Daten weisen viele XLSX-Muster auf und werden so wie sie sind auf den Server hochgeladen, was eigentlich recht praktisch ist. ――Ich frage mich, ob Sie nicht mit R. ** read.xlsx ** müssen.
in2csv -f json
sql2csv --Konvertierung von der in SQL DB gespeicherten nach CSV ――Dies scheint auch für Leute nützlich zu sein, die die SQL-Syntax nicht verstehen, um sie leicht zu berühren.
Recommended Posts