Comment lire un csv contenant uniquement des entiers en Python

J'ai vu une personne qui a du mal à écrire une double boucle par elle-même pour lire csv comme ce qui suit en Python, je vais donc résumer quatre méthodes de lecture typiques.

sample.csv


1,2,3
4,5,6
7,8,9
10,11,12

De plus, StringIO est utilisé ici pour émuler la lecture de fichiers, mais lorsque vous l'utilisez réellement, veuillez le lire comme une fonction ouverte ou une chaîne de caractères du nom de fichier, selon le cas.

Utilisez le module csv

Comment utiliser CSV qui est une bibliothèque standard de Python. Cela peut avoir l'avantage de travailler uniquement avec la bibliothèque standard, mais en réalité, il est peu probable que vous manipuliez des données qui ne contiennent que des valeurs numériques sous forme de liste double.

Notez que chaque élément est toujours une chaîne, donc nous mettons map (int, row) entre les deux pour le convertir en nombre.

from io import StringIO
import csv
s = """1,2,3
4,5,6
7,8,9
10,11,12"""

with StringIO(s) as csvfile:
    csvreader = csv.reader(csvfile)
    rows = []
    for row in csvreader:
        rows.append(list(map(int, row)))

#ou liste de notation d'inclusion
with StringIO(s) as csvfile:
    csvreader = csv.reader(csvfile)
    rows = [list(map(int, row)) for row in csvreader]

import numpy as np
arr = np.array(rows)

numpy

loadtxt et [genfromtxt](https://numpy.org/doc/stable/reference/generated /numpy.genfromtxt.html?highlight=genfromtxt#numpy.genfromtxt). Les deux ont des interfaces similaires, mais genfromtxt est un peu plus sophistiqué car il peut remplacer les valeurs manquantes.

numpy.loadtxt

from io import StringIO
import numpy as np

s = """1,2,3
4,5,6
7,8,9
10,11,12"""

with StringIO(s) as csvfile:
    arr = np.loadtxt(csvfile, delimiter=",", dtype=int)

numpy.genfromtxt

from io import StringIO
import numpy as np

s = """1,2,3
4,5,6
7,8,9
10,11,12"""

with StringIO(s) as csvfile:
    arr = np.genfromtxt(csvfile, delimiter=",", dtype=int)

pandas

np.genfromtxt peut également gérer les valeurs manquantes, mais les pandas peuvent être plus faciles à trouver des informations.

pandas.read_csv

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html

Cette fois, il est traité comme un csv sans en-tête, alors mettez l'option header = None.

from io import StringIO
import pandas as pd

s = """1,2,3
4,5,6
7,8,9
10,11,12"""

with StringIO(s) as csvfile:
    df = pd.read_csv(csvfile, header=None, dtype=int)
arr = df.values

Veuillez me faire savoir s'il existe une autre méthode pratique.

Recommended Posts

Comment lire un csv contenant uniquement des entiers en Python
Comment lire des fichiers CSV avec Pandas
Comment lire un fichier CSV avec Python 2/3
Comment développer en Python
[Python] Comment faire PCA avec Python
Comment collecter des images en Python
Comment utiliser SQLite en Python
Comment utiliser Mysql avec python
Comment envelopper C en Python
Comment utiliser ChemSpider en Python
Comment utiliser PubChem avec Python
Comment gérer le japonais avec Python
[Python] Comment convertir un fichier db en csv
[Introduction à Python] Comment utiliser la classe en Python?
Comment définir dynamiquement des variables en Python
Comment faire R chartr () en Python
Comment convertir csv en tsv dans la CLI
[Itertools.permutations] Comment créer une séquence en Python
Comment utiliser BigQuery en Python
Comment afficher la table quatre-vingt-dix-neuf en python
Comment extraire une zone de polygone en Python
Comment vérifier la version d'opencv avec python
Lire Python csv et exporter vers txt
Comment changer de version de Python dans cloud9
Comment régler le contraste de l'image en Python
Comment utiliser __slots__ dans la classe Python
Comment remplir dynamiquement des zéros avec Python
CSV en Python
Comment utiliser les expressions régulières en Python
Comment afficher Hello World en python
Comment utiliser is et == en Python
Comment écrire Ruby to_s en Python
[Python] Comment lire le fichier csv (méthode read_csv du module pandas)
Comment utiliser la bibliothèque C en Python
Comment recevoir des arguments de ligne de commande en Python
[REAPER] Comment jouer à Reascript avec Python
Comment effacer un taple dans une liste (Python)
Comment générer une séquence en Python et C ++
Comment incorporer des variables dans des chaînes python
Résumé de la façon d'importer des fichiers dans Python 3
Comment simplifier l'ajustement polymorphe restreint en python
Comment utiliser la bibliothèque d'images Python dans la série python3
Comment implémenter la mémoire partagée en Python (mmap.mmap)
Comment créer un fichier JSON en Python
[Python] Comment lire des fichiers Excel avec des pandas
Résumé de l'utilisation de MNIST avec Python
Convertir des fichiers CSV UTF-8 pour les lire dans Excel
Comment notifier les canaux Discord en Python
Comment obtenir les fichiers dans le dossier [Python]
Comment utiliser tkinter avec python dans pyenv
Comment exécuter LeapMotion avec Python non-Apple
Comment lire les données de séries chronologiques dans PyTorch
[Python] Comment dessiner un histogramme avec Matplotlib
Comment générer "Ketsumaimo" en standard en Python
Comment gérer le type datetime dans sqlite3 de python
Comment lire des fichiers dans différents répertoires
Comment apporter des modifications à l'interpréteur Python dans Pycharm
Comment tracer l'autocorrélation et l'autocorrélation partielle avec Python
Comment supprimer les éléments en double dans la liste Python 3