[PYTHON] Résumé de l'utilisation de csvkit

introduction

Installation

Si vous pouvez utiliser pip, vous pouvez l'installer avec la ligne suivante

$ pip install csvkit

Veuillez consulter la Page officielle pour plus de détails.

Liste des commandes

$ 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

Il y en a pas mal. Est-ce tout?

Préparation des données

$ 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

Confirmation des données

csvlook ――Il sera façonné et affiché pour une visualisation facile --Si le séparateur est autre qu'une virgule, `-d" | "` etc.

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

Vérifier uniquement les noms de colonnes

csvcut -n Comme les noms () dans R

$ csvcut -n iris.csv
  1:
  2: Sepal.Length
  3: Sepal.Width
  4: Petal.Length
  5: Petal.Width
  6: Species

Sélection de colonne

csvcut -c Une seule colonne (par numéro de colonne)

$ csvcut -c 2 iris.csv | head
Sepal.Length
5.1
4.9
4.7
4.6
5
5.4
4.6
5
4.4

Une seule colonne (par nom de colonne)

$ 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

Sélectionnez deux colonnes ou plus et 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           |

Sauf pour certaines colonnes et 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          |

Extraction / filtrage des lignes

csvgrep --Afficher les données d'une colonne dans des conditions spécifiées

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

Même avec des expressions régulières

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

Même dans la section

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

Transformation de format

csvformat

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

Joindre avec d'autres fichiers

csvjoin

Résumer les informations statistiques

csvstat --C'est pratique.

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>

vérification du fichier csv

csvclean ――Il vérifiera si le nombre de colonnes est correct. S'il n'y a pas de problème, ** Aucune erreur. ** est affiché.

$ csvclean iris.csv
No errors.

Convertir à partir de csv

csvjson --Convertit en JSON

$ 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 des éléments pouvant être convertis

$ 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 ressemble à ceci

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

Convertir en csv

in2csv --Conversion du fichier Excel (.xlsx) en csv. Les données reçues de la division commerciale ont de nombreux modèles xlsx et sont téléchargées sur le serveur telles quelles, donc c'est en fait assez pratique. ――Je me demande si vous n'avez pas à ** read.xlsx ** avec R.

in2csv -f json

sql2csv --Conversion de celui enregistré dans SQL DB vers csv ―― Cela semble également être utile pour les personnes qui ne comprennent pas la grammaire SQL de la toucher légèrement.

en conclusion

référence

Recommended Posts

Résumé de l'utilisation de csvkit
Résumé de l'utilisation de pandas.DataFrame.loc
Résumé de l'utilisation de pyenv-virtualenv
[Python] Résumé de l'utilisation des pandas
[Python2.7] Résumé de l'utilisation d'unittest
Résumé de l'utilisation de la liste Python
[Python2.7] Résumé de l'utilisation du sous-processus
Résumé de l'utilisation de MNIST avec Python
Comment calculer Utiliser% de la commande df
Jupyter Notebook Principes d'utilisation
Résumé de l'écriture d'AWS Lambda
[Question] Comment utiliser plot_surface de python
Comment utiliser xml.etree.ElementTree
Comment utiliser Python-shell
Remarques sur l'utilisation de tf.data
Comment utiliser virtualenv
Comment utiliser Seaboan
Comment utiliser la correspondance d'image
Comment utiliser le shogun
Comment utiliser Virtualenv
Comment utiliser numpy.vectorize
Comment utiliser pytest_report_header
Comment utiliser partiel
Comment utiliser Bio.Phylo
Comment utiliser SymPy
Comment utiliser x-means
Comment utiliser WikiExtractor.py
Comment utiliser virtualenv
Comment utiliser Matplotlib
Comment utiliser iptables
Comment utiliser numpy
Comment utiliser TokyoTechFes2015
Comment utiliser venv
Comment utiliser Pyenv
Comment utiliser la liste []
Comment utiliser python-kabusapi
Comment utiliser OptParse
Comment utiliser le retour
Comment utiliser pyenv-virtualenv
Comment utiliser imutils
Comment utiliser Folium (visualisation des informations de localisation)
Résumé de la façon d'importer des fichiers dans Python 3
Pas beaucoup de mention de la façon d'utiliser Pickle
Résumé de l'étude de Python pour utiliser AWS Lambda
Comment utiliser Qt Designer
Comment utiliser la recherche triée
python3: Comment utiliser la bouteille (2)
Comprendre comment utiliser django-filter
Comment utiliser le générateur
Comment utiliser FastAPI ③ OpenAPI
Comment utiliser Python Argparse
Comment utiliser IPython Notebook
Comment utiliser Pandas Rolling
[Note] Comment utiliser virtualenv
Comment utiliser les dictionnaires redis-py
[Python] Comment utiliser checkio
[Aller] Comment utiliser "... (3 périodes)"