[Python] So erhalten und ändern Sie Zeilen / Spalten / Werte aus einer Tabelle.

[Python] So erhalten und ändern Sie Zeilen / Spalten / Werte aus einer Tabelle

Aus einer mit Pandas DataFrame erstellten Tabelle ・ ** So extrahieren Sie das angegebene Element **


**Inhaltsverzeichnis**
  1. [Spalte extrahieren](Spalte 1 extrahieren)
  2. [Spaltennamensliste extrahieren](# Spaltennamensliste extrahieren)
  3. [Nach Spaltenname extrahieren](# Nach Spaltennamen extrahieren)
  4. [Nach Spaltennummer extrahieren](# Nach Spaltennummer extrahieren)
  5. [Linie extrahieren](# 2 Linie extrahieren)
  6. [Zeilennamenliste extrahieren](# Zeilennamenliste extrahieren)
  7. [Nach Zeilennamen extrahieren](# Nach Zeilennamen extrahieren)
  8. [Nach Zeilennummer extrahieren](# Nach Zeilennummer extrahieren)
  9. [Element extrahieren](Element Nr. 3 extrahieren)
    1. loc
    2. iloc
    3. at
    4. iat
  10. [Daten ändern (Änderung durch Angabe des Elements)](# 4 Daten ändern)
    1. loc
    2. iloc
    3. at
    4. iat

## Tabelle zu verwenden Extrahieren Sie, indem Sie Elemente aus einer Tabelle angeben, die mit 4 Zeilen und 4 Spalten erstellt wurde.

▼ Zu verwendende Tabelle (der Variablen "df" zugeordnet) image.png

Code zur Tabellenerstellung


import pandas as pd

listA = ['AAA', 'BBB', 'CCC', 'DDD']
listB = ['EEE', 'FFF', 'GGG', 'HHH']
listC = ['III', 'JJJ', 'KKK', 'LLL']
listD = ['MMM', 'NNN', 'OOO', 'PPP']

df = pd.DataFrame(listA)
df[1] = listB
df[2] = listC
df[3] = listD

df.columns = ['aaa', 'bbb', 'ccc', 'ddd']
df.index = [111,222,333,444]

df

Für Details zum Erstellen einer Tabelle klicken Sie hier ()


## 1. 1. Säulenextraktion ① Extraktion der Liste der Spaltennamen ② Nach Spaltennamen extrahieren ③ Extrahieren nach Spaltennummer

▼ ① Extrahieren Sie die Liste der Spaltennamen

Verwenden Sie die .columns -Methode └ Extraktion der Liste der Spaltennamen └ Die Ausgabe ist vom Typ Index / Int64Index usw. └ Der Spaltentyp (dtype) wird ebenfalls ausgegeben

[Zu verwendende Tabelle und ihr Code](# Zu verwendende Tabelle)

Spaltennamen extrahieren


df.columns

#Ausgabe
# Index(['aaa', 'bbb', 'ccc', 'ddd'], dtype='object')

Die Ausgabe ist vom Typ Index.

▼ Der Indextyp kann aufgelistet sein.

Ausgabe als Listentyp


list(df.columns)

#Ausgabe
# ['aaa', 'bbb', 'ccc', 'ddd']

** ▼ Geben Sie nur die Überschrift der angegebenen Spaltennummer aus ** `df.columns[n]` └ "n": SEQ ID NO:

Auszug nach Spaltennummer


df.columns[2]

#Ausgabe
# 'ccc'

### ② Nach Spaltennamen extrahieren Es gibt drei Möglichkeiten, nach Spaltennamen zu schreiben ②-1. Df ['Spaltenname'] ②-2. Df. Spaltenname ②-3. Df.loc [:, ['Spaltenname']]

Extrahieren nach Spaltenname ①


df['bbb']

#Ausgabe
111    EEE
222    FFF
333    GGG
444    HHH
Name: bbb, dtype: object

Extrahieren nach Spaltenname ②


df.bbb

#Ausgabe
111    EEE
222    FFF
333    GGG
444    HHH
Name: bbb, dtype: object

Selbst für Zeichenketten ist kein Kontingent erforderlich. Wenn Sie es einschalten, tritt ein Fehler auf.

Error


df.'bbb'

#Ausgabe
# invalid syntax

** ▼ Mit loc-Methode extrahieren **

df.loc[:, ['aaa', 'bbb',,,]] └ "loc []": loc-Methode └ ":,": Kein Zeilenname angegeben └ "['aaa', 'bbb' ,,,]": Geben Sie den Spaltennamen an, den Sie extrahieren möchten.

Extrahieren nach Spaltenname ③ (loc)


df.loc[:, ['bbb', 'ccc']]

	bbb	ccc
111	EEE	III
222	FFF	JJJ
333	GGG	KKK
444	HHH	LLL


### ③ Extrahieren nach Spaltennummer `iloc[:,[n,x,,,]]` └ "iloc []": Geben Sie die Spaltennummer an └ ":,": Keine Zeile angegeben └ "n" "x": Spaltennummer └ Slice [n: x] kann nicht verwendet werden (Fehler)

Mit iloc extrahieren


df.iloc[:, [1,2]]


#Ausgabe

	bbb	ccc
111	EEE	III
222	FFF	JJJ
333	GGG	KKK
444	HHH	LLL

** ▼ Nur eine Spalte extrahieren **

Mit iloc extrahieren (nur eine Spalte ①)


df.iloc[:, 2]


#Ausgabe

111    III
222    JJJ
333    KKK
444    LLL
Name: ccc, dtype: object

Mit iloc extrahieren (nur eine Spalte ②)


df.iloc[:, [2]]


#Ausgabe

	ccc
111	III
222	JJJ
333	KKK
444	LLL

## 2. Zeilenextraktion ① Extraktion der Zeilennamenliste ② Nach Zeilennamen extrahieren ③ Extrahieren Sie nach Zeilennummer

▼ ① Extraktion der Zeilennamenliste

Verwenden Sie die Methode ".index" └ Extraktion der Liste der Spaltennamen └ Die Ausgabe ist vom Typ Index / Int64Index usw. └ Der Spaltentyp (dtype) wird ebenfalls ausgegeben

[Zu verwendende Tabelle und ihr Code](# Zu verwendende Tabelle)

Zeilennamen extrahieren


df.index

#Ausgabe
# Int64Index([111, 222, 333, 444], dtype='int64')

In diesem Fall ist die Ausgabe vom Typ Int64Index.

▼ index / int64 Der Indextyp kann aufgelistet werden.

Ausgabe als Listentyp


list(df.index)

#Ausgabe
# [111, 222, 333, 444]

** ▼ Geben Sie nur die Überschrift der angegebenen Zeilennummer aus ** `df.index[n]` └ "n": Zeilennummer

Auszug nach Zeilennummer


df.index[2]

#Ausgabe
# '333'

### ② Nach Zeilennamen extrahieren `df.loc[['aaa', 'bbb',,,,]]` └ "df": Variable mit Tabelle └ ".loc []": So geben Sie Zeilen- / Spaltennamen an └ "aaa" "bbb": Zeilenname

Nach Zeilennamen extrahieren


df.loc[[111,333,444]]

#Ausgabe

	aaa	bbb	ccc	ddd
111	AAA	EEE	III	MMM
333	CCC	GGG	KKK	OOO
444	DDD	HHH	LLL	PPP

** ▼ Nach der angegebenen Zeile extrahieren ** `df.loc [Zeilenname:]`

Nach der angegebenen Zeile extrahieren


df.loc[333:]


#Ausgabe

	aaa	bbb	ccc	ddd
333	CCC	GGG	KKK	OOO
444	DDD	HHH	LLL	PPP

** ▼ Bei nur einer Zeile ** -Eine Linie wird in zwei Mustern beschrieben. -Das Ausgabeformat ändert sich (Spaltenname, dtype usw.) `df.loc[[111]]` `df.loc[111]` └ Doppelte Klammern sind leichter zu erkennen.
** ▼ Beispiel für `df.loc [[111]]` **

Mit loc extrahieren (nur eine Spalte ①)


df.loc[[111]]

#Ausgabe

	aaa	bbb	ccc	ddd
111	AAA	EEE	III	MMM

** ▼ Beispiel für df.loc [111] **

Mit loc extrahieren (nur eine Spalte ②)


df.loc[111]


#Ausgabe

aaa    AAA
bbb    EEE
ccc    III
ddd    MMM
Name: 111, dtype: object

③ Extrahieren Sie nach Zeilennummer

③-1. df[n:m:l] ③-2. df.iloc[[n,m,,,,]]

(3-1)df[n:m:l] Geben Sie die Zeilen an, die mithilfe von Slices extrahiert werden sollen. └ "df": Variable mit Tabelle └ "n": Startwert └ "m": Endpreis └ "l": Änderungsbetrag

・ "N" und "l" können weggelassen werden.

Über Slice


** ▼ Beispiel: df [1: 3] ** Extrahieren Sie die 1. und 2. Zeile. Enthält nicht die 3. Zeile (da die Verarbeitung in der 3. Zeile endet)

Zeilenextraktion


df[1:3]

#Ausgabe

	aaa	bbb	ccc	ddd
222	BBB	FFF	JJJ	NNN
333	CCC	GGG	KKK	OOO

** ▼ Beispiel: Geben Sie den Änderungs- und Extraktionsbetrag an **

df[1:5:2] Extrahieren Sie aus der 1. bis 4. Zeile die Zeilen mit um 2 erhöhten Zahlen.

Zeilenextraktion


df[1:5:2]

#Ausgabe

	aaa	bbb	ccc	ddd
222	BBB	FFF	JJJ	NNN
444	DDD	HHH	LLL	PPP

** ▼ Wenn der Anfangswert weggelassen wird ** Der Anfangswert wird als 0 betrachtet, und die Zeilen bis zur angegebenen Zahl (eine vor) von oben können extrahiert werden.

df[:3] Extrahieren Sie von 0 bis 2. Zeile.

Zeilenextraktion


df[:3]

#Ausgabe

	aaa	bbb	ccc	ddd
111	AAA	EEE	III	MMM
222	BBB	FFF	JJJ	NNN
333	CCC	GGG	KKK	OOO

### (3-2) Mit iloc extrahieren

df.iloc[[n,m,,,]] └ "df": Variable mit Tabelle └ ".iloc []": Methode, die durch die Zeilen- / Spaltennummer angegeben wird └ "n" "m": Geben Sie die Zeilennummer an


▼ Beispiel: `df.iloc [[1,3]]`

Angegeben durch Zeilennummer


df.iloc[[1,3]]

#Ausgabe
	aaa	bbb	ccc	ddd
222	BBB	FFF	JJJ	NNN
444	DDD	HHH	LLL	PPP

#### Beim Extrahieren nur einer Zeile Es gibt zwei Beschreibungsmuster. `df.iloc[[n]]` `df.iloc[n]`

Unterschied in der Anzahl von []. Das Ausgabeergebnis ist jeweils unterschiedlich. └ Die Ausgabe ist mit df.iloc [[n]] leichter zu sehen.

** ▼ Beispiel: df.iloc [[n]] ** Ausgabe für doppelte Klammern.

Angegeben durch Zeilennummer


df.iloc[[3]]

#Ausgabe
	aaa	bbb	ccc	ddd
444	DDD	HHH	LLL	PPP

** ▼ Beispiel: `df.iloc [n]` ** Ausgabe für einzelne Klammern.

Angegeben durch Zeilennummer


df.iloc[3]

#Ausgabe
aaa    DDD
bbb    HHH
ccc    LLL
ddd    PPP
Name: 444, dtype: object

## 3. 3. Extraktion von Elementen Es gibt vier Hauptmethoden. ①loc ②iloc ③at ④iat

** ■ Es kann grob in zwei Typen eingeteilt werden, "loc" und "at" **

〇Zusatz: "at" ist schneller.

** ■ Vorhandensein oder Nichtvorhandensein von "i" ** Mit oder ohne das "i" am Anfang können Sie wählen, ob Sie nach Name oder nach Nummer angeben möchten.

・ Keine: Matrixname ・ Ja: Matrixnummer


### ▼ Extraktionsquellentabelle ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563526/cb3b210a-31af-2069-e91d-14e01ea77047.png)

Code zur Tabellenerstellung


import pandas as pd

listA = ['AAA', 'BBB', 'CCC', 'DDD']
listB = ['EEE', 'FFF', 'GGG', 'HHH']
listC = ['III', 'JJJ', 'KKK', 'LLL']
listD = ['MMM', 'NNN', 'OOO', 'PPP']

df = pd.DataFrame(listA)
df[1] = listB
df[2] = listC
df[3] = listD

df.columns = ['aaa', 'bbb', 'ccc', 'ddd']
df.index = [111,222,333,444]

df

(3-1) loc df.loc ['Zeilenname', 'Spaltenname']

loc


df.loc[333,'bbb']

#Ausgabe
# 'GGG'

(3-2) iloc `df.iloc ['Zeilennummer', 'Spaltennummer']`

iloc


df.iloc[2,1]

#Ausgabe
# 'GGG'

(3-3) at `df.at ['Zeilenname', 'Spaltenname']`

at


df.at[333,'bbb']

#Ausgabe
# 'GGG'

(3-4) iat `df.at ['Zeilennummer', 'Spaltennummer']`

iat


df.iat[2,1]

#Ausgabe
# 'GGG'

## 4. Datenänderung ### Ändern Sie durch Angabe eines Elements Wenn Sie ein Element angeben und ersetzen, werden die Daten ersetzt. Es gibt vier Hauptmethoden.

①loc ②iloc ③at ④iat

Details
** ■ Es kann grob in zwei Typen eingeteilt werden, "loc" und "at" ** - "Loc": Nach Bereich angeben. Sie können auch mehrere Zeilen und Spalten abrufen. - "At": Nur einen Elementpunkt ermitteln.

** ■ Vorhandensein oder Nichtvorhandensein von "i" ** Mit oder ohne das "i" am Anfang können Sie wählen, ob Sie nach Name oder nach Nummer angeben möchten.

・ Keine: Matrixname ・ Ja: Matrixnummer


### Originaltisch Verwenden Sie die folgende Tabelle, um die Daten neu zu schreiben. ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563526/cb3b210a-31af-2069-e91d-14e01ea77047.png)

Code zur Tabellenerstellung


import pandas as pd

listA = ['AAA', 'BBB', 'CCC', 'DDD']
listB = ['EEE', 'FFF', 'GGG', 'HHH']
listC = ['III', 'JJJ', 'KKK', 'LLL']
listD = ['MMM', 'NNN', 'OOO', 'PPP']

df = pd.DataFrame(listA)
df[1] = listB
df[2] = listC
df[3] = listD

df.columns = ['aaa', 'bbb', 'ccc', 'ddd']
df.index = [111,222,333,444]

df

(4-1) loc

loc


df.loc[333,'bbb'] = '@@@'
df

#Ausgabe

	aaa	bbb	ccc	ddd
111	AAA	EEE	III	MMM
222	BBB	FFF	JJJ	NNN
333	CCC	@@@	KKK	OOO
444	DDD	HHH	LLL	PPP

(4-2) iloc

iloc


df.iloc[2,1] = '★★'
df

#Ausgabe

	aaa	bbb	ccc	ddd
111	AAA	EEE	III	MMM
222	BBB	FFF	JJJ	NNN
333	CCC	★★	KKK	OOO
444	DDD	HHH	LLL	PPP

(4-3) at

at


df.at[333,'bbb'] = 999
df

#Ausgabe

	aaa	bbb	ccc	ddd
111	AAA	EEE	III	MMM
222	BBB	FFF	JJJ	NNN
333	CCC	999	KKK	OOO
444	DDD	HHH	LLL	PPP

(4-4) iat

iat


df.iat[2,1] = '※※'
df

#Ausgabe

	aaa	bbb	ccc	ddd
111	AAA	EEE	III	MMM
222	BBB	FFF	JJJ	NNN
333	CCC	※※	KKK	OOO
444	DDD	HHH	LLL	PPP

### ■ Ändern Sie den Zeilennamen und den Spaltennamen ① Beim Erstellen einer Tabelle Verwenden Sie DataFrame-Optionen · Spalten: Spaltenoption · Zeile: Indexoption

② Später (gemeinsam) -Columns: Spaltenmethode -Line: Indexmethode

③ Später (bezeichnet) -Methode umbenennen └ "Spalten = {}": Spaltennamen ändern └ "index = {}": Zeilennamen ändern

** ▶ So ändern Sie den Zeilennamen und den Spaltennamen hier **



> Offizielle Seite - [Pandas.DataFrame.loc](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.loc.html#pandas.DataFrame.loc) ・ [Pandas.DataFrame.iloc](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.iloc.html#pandas.DataFrame.iloc) ・ [Pandas.DataFrame.at](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.at.html#pandas.DataFrame.at) ・ [Pandas.DataFrame.iat](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.iat.html#pandas.DataFrame.iat)
[Zurück zum Anfang](# So erhalten und ändern Sie Matrixwerte aus der Python-Tabelle)

Recommended Posts

[Python] So erhalten und ändern Sie Zeilen / Spalten / Werte aus einer Tabelle.
[Python] So fügen Sie einer Tabelle Zeilen und Spalten hinzu (pandas DataFrame)
Wie bekomme ich Stacktrace in Python?
So erhalten Sie eine Zeichenfolge aus einem Befehlszeilenargument in Python
[Python] So löschen Sie eine Zeile / Spalte in einer Tabelle (Liste der Optionen für die Drop-Methode)
[Python] So erstellen Sie eine Tabelle aus einer Liste (grundlegende Operation zum Erstellen von Tabellen / Ändern des Matrixnamens)
So öffnen Sie einen Webbrowser über Python
So generieren Sie ein Python-Objekt aus JSON
So erhalten Sie den Wert aus dem Parameterspeicher in Lambda (mit Python)
So speichern Sie eine von Python gekratzte Tabelle in CSV
So ändern Sie die Python-Version
[Python] So rufen Sie eine Funktion von c aus Python auf (ctypes edition)
So schneiden Sie ein Block-Multiple-Array aus einem Multiple-Array in Python
So führen Sie ein Python-Programm in einem Shell-Skript aus
Ich habe versucht "Wie man eine Methode in Python dekoriert"
So erhalten Sie den letzten (letzten) Wert in einer Liste in Python
So erhalten Sie eine Liste der integrierten Ausnahmen für Python
[Python] So geben Sie eine Pandas-Tabelle in eine Excel-Datei aus
So erhalten Sie eine Liste mit Links von einer Seite aus Wikipedia
Erste Schritte mit Python
[Python] So tauschen Sie Array-Werte aus
So greifen Sie über Python auf Wikipedia zu
Hat sich nicht von Python 2 auf 3 geändert
So erhalten Sie alle möglichen Werte in einem regulären Ausdruck
Verwendung der visuellen Erkennung, um die LINE ID von einem Mädchen zu erhalten
[Python] So erhalten Sie mit Enum einen Wert mit einem anderen Schlüssel als dem Wert
So bekommen Sie einen Ingenieur aus Ihren 30ern
So entfernen Sie Duplikate aus einer Python-Liste unter Beibehaltung der Reihenfolge.
So erstellen Sie einen Klon aus Github
[Python] Wie man eine Klasse iterierbar macht
[Python] So konvertieren Sie eine zweidimensionale Liste in eine eindimensionale Liste
[Python] So invertieren Sie eine Zeichenfolge
So zeigen Sie die neunundneunzig Tabelle in Python an
Zugriff auf RDS von Lambda (Python)
So erstellen Sie ein Repository aus Medien
So führen Sie Maya Python-Skripte aus
[Python] So extrahieren / löschen / konvertieren Sie eine Matrix mit fehlenden Werten (NaN)
[Python-Memo] Ich möchte eine zweistellige Hexadezimalzahl aus einer Dezimalzahl erhalten
So finden Sie den Ansichtsnamen mit dem Namespace über die URL (path_info) in Django
So erhalten Sie mithilfe der API von Virus Total einen Beispielbericht aus einem Hashwert
Senden Sie eine Nachricht von Slack an einen Python-Server
Bearbeiten Sie Excel in Python, um eine Pivot-Tabelle zu erstellen
Lesen einer CSV-Datei mit Python 2/3
So löschen Sie einen Taple in einer Liste (Python)
Einbetten von Variablen in Python-Strings
So erstellen Sie ein Funktionsobjekt aus einer Zeichenfolge
[Python] So ändern Sie das Datumsformat (Anzeigeformat)
Studie aus Python Hour7: Verwendung von Klassen
So erhalten Sie Ergebnisse von id in Celery
So erstellen Sie eine JSON-Datei in Python
[Python] Lesen von Daten aus CIFAR-10 und CIFAR-100
[Python] Erstellen Sie eine Tabelle von Pandas DataFrame zu Postgres
[Bash] Holen Sie sich die Kraft von Python aus Bash mithilfe der folgenden Dokumentation
So fügen Sie einen Suchpfad für Python-Module hinzu
Wie man gut mit Linux-Befehlen aus Python umgeht
So extrahieren Sie den Koeffizienten aus der Minutenformel