[PYTHON] Zusammenfassung der Verwendung von csvkit

Einführung

--Open Source Tool für die einfache Handhabung und Bereinigung von CSV-Dateien für die Datenanalyse

Installation

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.

Befehlsliste

$ 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?

Datenaufbereitung

$ 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

Bestätigung der Daten

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      |

Überprüfen Sie nur die Spaltennamen

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

Spaltenauswahl

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          |

Zeilenextraktion / Filterung

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      |

Formattransformation

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>

Mit anderen Dateien verbinden

csvjoin

Fassen Sie statistische Informationen zusammen

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>

CSV-Datei überprüfen

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.

Von CSV konvertieren

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
);

In CSV konvertieren

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.

abschließend

Referenz

Recommended Posts

Zusammenfassung der Verwendung von csvkit
Zusammenfassung der Verwendung von pandas.DataFrame.loc
Zusammenfassung der Verwendung von pyenv-virtualenv
[Python] Zusammenfassung der Verwendung von Pandas
[Python2.7] Zusammenfassung der Verwendung von unittest
Zusammenfassung der Verwendung der Python-Liste
[Python2.7] Zusammenfassung der Verwendung des Unterprozesses
Zusammenfassung der Verwendung von MNIST mit Python
Berechnen Verwenden Sie% des Befehls df
Jupyter Notebook Grundlagen der Verwendung
Zusammenfassung des Schreibens von AWS Lambda
[Frage] Wie verwende ich plot_surface von Python?
Verwendung von xml.etree.ElementTree
Wie benutzt man Python-Shell
Hinweise zur Verwendung von tf.data
Verwendung von virtualenv
Wie benutzt man Seaboan?
Verwendung von Image-Match
Wie man Shogun benutzt
Verwendung von Virtualenv
Verwendung von numpy.vectorize
Verwendung von pytest_report_header
Wie man teilweise verwendet
Wie man Bio.Phylo benutzt
Verwendung von SymPy
Wie man x-means benutzt
Verwendung von WikiExtractor.py
Verwendung von virtualenv
Wie benutzt man Matplotlib?
Verwendung von iptables
Wie benutzt man numpy?
Verwendung von TokyoTechFes2015
Wie benutzt man venv
Wie benutzt man Pyenv?
Verwendung der Liste []
Wie man Python-Kabusapi benutzt
Verwendung von OptParse
Verwendung von return
Wie man Imutils benutzt
Verwendung von Folium (Visualisierung von Standortinformationen)
Zusammenfassung zum Importieren von Dateien in Python 3
Nicht viel erwähnt, wie man Pickle benutzt
Zusammenfassung des Studiums von Python zur Verwendung von AWS Lambda
Verwendung von Qt Designer
Verwendung der Suche sortiert
python3: Verwendung der Flasche (2)
Verstehen Sie, wie man Django-Filter verwendet
Verwendung des Generators
Verwendung von FastAPI ③ OpenAPI
Wie benutzt man Python Argparse?
Verwendung von IPython Notebook
Wie man Pandas Rolling benutzt
[Hinweis] Verwendung von virtualenv
Verwendung von Redispy-Wörterbüchern
[Python] Verwendung von checkio
[Go] Verwendung von "... (3 Perioden)"