Erweiterte Version zum Lesen von CSV-Dateien mit Pandas Beachten Sie, dass Sie viele Dinge mehr tun können, als Sie denken, z. B. die anzuzeigenden Zeilen und Spalten angeben.
Grundsätzlich ist es in Ordnung, wenn Sie so viel gedrückt halten [Liste der Hauptoptionen für die Methode read_csv](# 1 - Liste der Hauptoptionen für die Methode read_csv)
・ Die offizielle Seite ist hier
Möglichkeit | Anwendungsbeispiel | Inhalt |
---|---|---|
sep | sep=';' | Trennen |
delimiter | delimiter=';' | Teilt(Gleich wie sep) |
header | header=1 | Geben Sie die Kopfzeile an (Standard ist "Raten", wenn nicht "Kopfzeile")=Keine * "N" ist Kapital) |
names | ①names=['AA','BB','CC',,] ②names='1234567' | Geben Sie einen Spaltentitel an (oder "Überschrift", wenn eine Überschrift vorhanden ist=In Kombination mit "0") |
index_col | index_col=0 | Zeilenüberschrift(index)Geben Sie die Spalte an, die wird |
usecols | usecols=[1,2,5] | Geben Sie die zu lesende Zeile an. Geben Sie nur eine Zeile im Listenformat "usecols" an=[0].. Kann auch im Spaltentitel "angegeben werden |
prefix | prefix="Zeilennummer", header=None | Geben Sie das Präfix des Zeilentitels an. Beispiel "Präfix"='Zeilennummer'」ならZeilennummer0、Zeilennummer1、、、となる。 hedar=Nur gültig, wenn Keine angegeben ist. |
dtype | dtype=str | Lesen Sie durch Angabe des Typs. Wenn es nicht angewendet werden kann, liegt ein Fehler vor (z. B. Lesen von str mit float) |
skiprows | ①skiprows=5 ②skiprows=[1,3,6] | Geben Sie die Zeilennummer an, die am Anfang nicht gelesen werden soll. Für Ganzzahlen von 0 bis zur angegebenen Ganzzahl. |
skipfooter | skipfooter=2, engine='python', encoding='utf_8' | Geben Sie die Anzahl der Zeilen an, die unten ausgeschlossen werden sollen. Müssen beschreiben, was in Python verwendet werden soll. Wenn die Zeichen verstümmelt sind, geben Sie den Zeichencode an. |
nrows | nrows=5 | Geben Sie die Anzahl der zu lesenden Zeilen an. |
encoding | encoding='shift_jis' | Zeichencode-Spezifikation beim Lesen einer Datei |
(compression) | compression='zip' | Öffnen Sie die komprimierte Datei. Gegenwärtig öffnet es sich analog ohne Beschreibung. (Umgekehrt Komprimierung der Zip-Datei='gzip'Fehler, wenn Sie angeben |
(skipinitialspace) | skipinitialspace=True | Trennzeichen(Zeichenbegrenzer)Entfernen Sie später den führenden Rohling. Derzeit scheint es standardmäßig gelöscht zu sein |
Wenn die folgende CSV-Datei gelesen wird
** ▼ Spalte ** ・ Spalte A ist Index (Überschrift) ・ F-Spalte ist leer ・ Spalte G ist ein Zeichen und eine leere Zelle
** ▼ Linie ** ・ Die erste Zeile ist der Titel der Spalte ・ Die 9. Zeile ist leer ・ In der 10. Zeile liegt ein Formelfehler (#NUM!) Vor.
** ▼ Punkt ** ・ ** Überschriftenspalte zur ersten Spalte hinzugefügt ** (Indexnummer von 0) ・ ** Titelzeile zur ersten Zeile hinzugefügt **
Spaltenattribute
Unnamed: 0 object
Objekt in Spalte 1
Spalte 2 float64
Objekt in Spalte 3
Spalte 4 float64
Unnamed: 5 float64
Objekt in Spalte 5
-Datum: Objekttyp ・ Numerischer Wert: Typ float64 └ Sowohl Ganzzahl als auch Minderheit └ NaN wird ignoriert -Spalte mit Funktionsfehler: Objekttyp ・ Leere Spalte: Typ float64 -Text: Objekttyp └ Wenn es eine Textzelle gibt, handelt es sich um einen Objekttyp
Bei Ausgabe als CSV-Datei mit utf8.
-Köpfe, die automatisch in die 1. Zeile und 1. Spalte eingefügt werden, bleiben erhalten. ・ NaN wird zu einer Leerzeile
Leerzeichen werden als "NaN" (leere Daten) behandelt. Das Folgende wird auch als NaN behandelt.
Die Standardeinstellung beim Lesen ist "analog".
▼ Originaldatei
▼ Leseergebnis
CSV-Datei lesen
import pandas as pd
df = pd.read_csv('~/desktop/test.csv')
df
└ Lesen Sie die Datei test.csv und zeigen Sie sie auf dem Desktop an.
** ▼ Originaldatei ** (sagen wir "desktop test2.csv")
** ▼ Datei lesen **
pd.read_csv('~/desktop/test2.csv' ,header=None)
python
import pandas as pd
df = pd.read_csv('~/desktop/test2.csv' ,header=None)
df
** ▼ Wenn eine Zeile als Überschrift angegeben wird **
Optional header = integer
import pandas as pd
df = pd.read_csv('~/desktop/test.csv' ,header=6)
df
(1) Aufeinanderfolgende Zeichenketten (2) Listenformat
** ▼ Punkt **
-Wenn Sie bereits einen Header haben, überschreiben Sie ihn mit header = 0
.
-Wenn die Anzahl der angegebenen Zeichen geringer ist als die Anzahl der zu lesenden Spalten: Der Titel der anderen Spalte ist leer
-Wenn die Anzahl der angegebenen Zeichen größer ist: Der Titel der letzten Spalte lautet NaN
-Differente Spalten können nicht denselben Namen erhalten (Fehler)
** ▼ Beispiel 1: Wenn names = '123345'
**
import pandas as pd
df = pd.read_csv('~/desktop/test.csv' ,names='12345')
df
Die ersten beiden fehlenden Spalten sind leer.
import pandas as pd
df = pd.read_csv('~/desktop/test.csv' ,names='abcdefghi')
df
Viele Spaltentitel sind leere (NaN) Spalten.
python
import pandas as pd
df = pd.read_csv('~/desktop/test.csv' ,names='aaabbbccc')
df
#Ausgabe
# ValueError: Duplicate names are not allowed.
** ▼ Beispiel 1: Wenn names = ['aaa', 'bbb', 'ccc', 'ddd', 'eee', 'fff']
**
python
import pandas as pd
df = pd.read_csv('~/desktop/test.csv' ,names=['aaa','bbb','ccc','ddd','eee','fff'])
df
python
import pandas as pd
df = pd.read_csv('~/desktop/test.csv' ,names=['aaa','bbb','aaa','ddd'])
df
python
import pandas as pd
df = pd.read_csv('~/desktop/test.csv', prefix="XXX", header=None)
df
① Geben Sie die Spaltennummer an ② Geben Sie den Spaltennamen an
import pandas as pd
df = pd.read_csv('~/desktop/test.csv')
df
Geben Sie mehrere Spalten an
import pandas as pd
df = pd.read_csv('~/desktop/test.csv', usecols=[0,3,6])
df
** ▼ Für 1 Spalte (zB nur 0. Spalte) **
usecols=[0]
Geben Sie nur eine Spalte an (Beispiel: Nur 0. Spalte)
import pandas as pd
df = pd.read_csv('~/desktop/test.csv', usecols=[0])
df
** ▼ Fehler, wenn nicht Listentyp **
Error
import pandas as pd
df = pd.read_csv('~/desktop/test.csv', usecols=0)
df
#Ausgabe
# ValueError: 'usecols' must either be list-like of all strings, all unicode, all integers or a callable.
Es ist auch möglich, nur den angegebenen Spaltennamen zu extrahieren.
▼ Beispiel: usecols = ['Spalte 1', 'Spalte 4']
└ Geben Sie Spalte 1 und Spalte 4 an.
python
import pandas as pd
df = pd.read_csv('~/desktop/test.csv', usecols=['Spalte 1','Spalte 4'])
df
Beispiel:
・ Header = 0
・ Names = 'ABCDEFG'
・ Usecols = ['A', 'C']
import pandas as pd
df = pd.read_csv('~/desktop/test.csv', header=0, names='ABCDEFG' ,usecols=['A','C'])
df
① Geben Sie die Anzahl der Zeilen an, die von Anfang an gelesen werden sollen (2) Geben Sie die Anzahl der Zeilen an, die von Anfang an ausgeschlossen werden sollen ③ Schließen Sie die angegebene Zeile aus ④ Geben Sie die Anzahl der Zeilen an, die vom Ende ausgeschlossen werden sollen
python
import pandas as pd
df = pd.read_csv('~/desktop/test.csv', nrows=3)
df
▼ Beispiel: skiprows = 6
Springe von oben zur 6. Zeile.
Wenn keine Kopfzeile angegeben ist, ist die 6. Zeile die Kopfzeile.
python
import pandas as pd
df = pd.read_csv('~/desktop/test.csv', skiprows=6)
df
▼ Beispiel: skiprows = [2,3,6,7,8]
Überspringen Sie die 2., 3., 5., 7. und 8. Zeile von oben.
python
import pandas as pd
df = pd.read_csv('~/desktop/test.csv', skiprows=[2,3,6,7,8])
df
encoding = 'utf_8'
▼ Beispiel: skipfooter = 6, engine = 'python', encoding = 'utf_8'
Überspringen Sie die 6. Zeile von unten.
python
import pandas as pd
df = pd.read_csv('~/desktop/test.csv', skipfooter=6, engine='python', encoding='utf_8')
df
python
import pandas as pd
df = pd.read_csv('~/desktop/test.csv', skipfooter=6, engine='python')
df
Japanisch ist verstümmelt.
python
import pandas as pd
df = pd.read_csv('~/desktop/test.csv', skipfooter=6)
df
#Ausgabe
# <ipython-input-81-77b6fdc5c66e>:2: ParserWarning: Falling back to the 'python' engine
#because the 'c' engine does not support skipfooter;
#you can avoid this warning by specifying engine='python'.
Ein Fehler wird angezeigt. Anweisungen zur Beschreibung von "engine = 'python'".
▼ Konvertieren Sie in eine Zeichenfolge mit dtype = str
und überprüfen Sie den Typ mit .dtypes
(dtypes-Methode).
In String konvertieren
import pandas as pd
df = pd.read_csv('~/desktop/test.csv', dtype=str)
df.dtypes
#Ausgabe
Unnamed: 0 object
Objekt in Spalte 1
Objekt in Spalte 2
Objekt in Spalte 3
Objekt in Spalte 4
Unnamed: 5 object
Objekt in Spalte 5
dtype: object
python
import pandas as pd
df = pd.read_csv('~/desktop/test.csv')
df.dtypes
#Ausgabe
Unnamed: 0 object
Objekt in Spalte 1
Spalte 2 float64
Objekt in Spalte 3
Spalte 4 float64
Unnamed: 5 float64
Objekt in Spalte 5
dtype: object
python
import pandas as pd
df = pd.read_csv('~/desktop/test.csv' ,dtype=float)
df.dtypes
#Ausgabe
# ValueError: could not convert string to float
pd.read_csv ('URL', encoding = 'Zeichencode') `
** ▼ Lesen Sie die statistischen Daten der Bevölkerung der Regierung nach Präfektur und Geschlecht ** ・ Referenzseite: e-Start
python
import pandas as pd
dfurl = pd.read_csv('https://www.e-stat.go.jp/stat-search/file-download?statInfId=000031524010&fileKind=1', encoding='shift_jis')
dfurl
Error
import pandas as pd
dfurl = pd.read_csv('https://www.e-stat.go.jp/stat-search/file-download?statInfId=000031524010&fileKind=1')
dfurl
#Ausgabe
# UnicodeDecodeError: 'utf-8' codec can't decode byte 0x93 in position 0: invalid start byte
Weil es das komprimierte Format analog liest.
└ Standard: Komprimierung = Infer
python
import pandas as pd
df = pd.read_csv('~/desktop/test.zip')
df
■ Das Obige ist dasselbe wie "Komprimierung =" Zip ".
import pandas as pd
df = pd.read_csv('~/desktop/test.zip', compression='zip')
df
Error
import pandas as pd
df = pd.read_csv('~/desktop/test.zip', compression='gzip')
df
#Ausgabe
# BadGzipFile: Not a gzipped file (b'PK')
Error
import pandas as pd
df = pd.read_csv('~/desktop/2files.zip')
df
#Ausgabe
# ValueError: Multiple files found in compressed zip file ['test.csv', 'space.csv']
Error
import pandas as pd
df = pd.read_csv('~/desktop/2files.zip')
df
#Ausgabe
# ValueError: Multiple files found in compressed zip file ['test.csv', 'space.csv']
Error
import pandas as pd
df = pd.read_csv('~/desktop/test.zip')
df
#Ausgabe
# RuntimeError: File 'test.csv' is encrypted, password required for extraction
** ▼ Beispiel: Zu lesende Datei ** In einer Zelle befinden sich mehrere Daten. └ Daten durch "@" getrennt └ Daten getrennt durch ";"
python
import pandas as pd
df = pd.read_csv('~/desktop/test2.csv')
df
「@Getrennt durch "(sep)
import pandas as pd
df = pd.read_csv('~/desktop/test2.csv', sep='@')
df
** ▼ delimita = '@'
** Getrennt durch "@"
「@(Trennzeichen)
import pandas as pd
df = pd.read_csv('~/desktop/test2.csv', delimiter='@')
df
「;Getrennt durch "(sep)
import pandas as pd
df = pd.read_csv('~/desktop/test2.csv', sep=';')
df
Error
import pandas as pd
df = pd.read_csv('~/desktop/test2.csv', sep=';', sep='@')
df
#Ausgabe
# SyntaxError: keyword argument repeated
Error
import pandas as pd
df = pd.read_csv('~/desktop/test2.csv', sep=[';','@'])
df
#Ausgabe
# TypeError: unhashable type: 'list'
Recommended Posts