[Python] Comment obtenir et modifier les lignes / colonnes / valeurs d'une table.

[Python] Comment obtenir et modifier les lignes / colonnes / valeurs d'une table

À partir d'une table créée avec Pandas DataFrame ・ ** Comment extraire l'élément spécifié **


**table des matières**
  1. [Extraire la colonne](Extraire la colonne n ° 1)
  2. [Extraire la liste des noms de colonnes](# Extraire la liste des noms de colonnes)
  3. [Extraire par nom de colonne](# Extraire par nom de colonne)
  4. [Extraire par numéro de colonne](# Extraire par numéro de colonne)
  5. [Extract line](# 2 extract line)
  6. [Extraire la liste des noms de ligne](# Extraire la liste des noms de ligne)
  7. [Extraire par nom de ligne](# Extraire par nom de ligne)
  8. [Extraire par numéro de ligne](# Extraire par numéro de ligne)
  9. [Extract Element](# 3 Extract Element)
    1. loc
    2. iloc
    3. at
    4. iat
  10. [Modifier les données (modifier en spécifiant l'élément)](# 4 Modifier les données)
    1. loc
    2. iloc
    3. at
    4. iat

## Table à utiliser Extraire en spécifiant les éléments d'un tableau créé avec 4 lignes et 4 colonnes.

▼ Table à utiliser (affectée à la variable "df") image.png

Code de création de table


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

Pour plus de détails sur la création d'un tableau, cliquez ici ()


## 1. 1. Extraction de colonne ① Extraction de la liste des noms de colonnes ② Extraire par nom de colonne ③ Extraire par numéro de colonne

▼ ① Extraire la liste des noms de colonnes

Utilisez la méthode .columns └ Extraction de la liste des noms de colonnes └ La sortie est de type Index / Int64Index, etc. └ Le type de colonne (dtype) est également affiché

[Table à utiliser et son code](#Table à utiliser)

Extraire les noms de colonnes


df.columns

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

La sortie sera de type Index.

▼ Le type d'index peut être une liste.

Sortie en tant que type de liste


list(df.columns)

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

** ▼ Affiche uniquement l'en-tête du numéro de colonne spécifié ** `df.columns[n]` └ "n": SEQ ID NO:

Extraire par numéro de colonne


df.columns[2]

#production
# 'ccc'

### ② Extraire par nom de colonne Il existe trois façons d'écrire par nom de colonne ②-1. Df ['nom de la colonne'] ②-2. Df. Nom de colonne ②-3. Df.loc [:, ['nom de la colonne']]

Extraire par nom de colonne ①


df['bbb']

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

Extraire par nom de colonne ②


df.bbb

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

Aucun quota n'est requis, même pour les chaînes de caractères. Si vous l'activez, une erreur se produira.

Erreur


df.'bbb'

#production
# invalid syntax

** ▼ Extrait avec la méthode loc **

df.loc[:, ['aaa', 'bbb',,,]] └ "loc []": méthode loc └ ":,": aucun nom de ligne spécifié └ "['aaa', 'bbb' ,,,]": spécifiez le nom de la colonne à extraire.

Extraire par nom de colonne ③ (loc)


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

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


### ③ Extraire par numéro de colonne `iloc[:,[n,x,,,]]` └ "iloc []": spécifiez par numéro de colonne └ ":,": Aucune ligne spécifiée └ "n" "x": numéro de colonne └ La tranche [n: x] ne peut pas être utilisée (erreur)

Extrait avec iloc


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


#production

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

** ▼ Extraire une seule colonne **

Extraire avec iloc (une seule colonne ①)


df.iloc[:, 2]


#production

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

Extraire avec iloc (une seule colonne ②)


df.iloc[:, [2]]


#production

	ccc
111	III
222	JJJ
333	KKK
444	LLL

## 2. Extraction de lignes ① Extraction de la liste des noms de ligne ② Extraire par nom de ligne ③ Extrait par numéro de ligne

▼ ① Extraction de la liste des noms de ligne

Utilisez la méthode .index └ Extraction de la liste des noms de colonnes └ La sortie est de type Index / Int64Index, etc. └ Le type de colonne (dtype) est également affiché

[Table à utiliser et son code](#Table à utiliser)

Extraire le nom de la ligne


df.index

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

Dans ce cas, la sortie sera de type Int64Index.

▼ index / int64 Le type d'index peut être une liste.

Sortie en tant que type de liste


list(df.index)

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

** ▼ Affiche uniquement l'en-tête du numéro de ligne spécifié ** `df.index[n]` └ "n": numéro de ligne

Extraire par numéro de ligne


df.index[2]

#production
# '333'

### ② Extraire par nom de ligne `df.loc[['aaa', 'bbb',,,,]]` └ "df": variable avec table └ ".loc []": comment spécifier les noms de ligne / colonne └ "aaa" "bbb": nom de ligne

Extraire par nom de ligne


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

#production

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

** ▼ Extraire après la ligne spécifiée ** `df.loc [nom de la ligne:]`

Extraire après la ligne spécifiée


df.loc[333:]


#production

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

** ▼ Dans le cas d'une seule ligne ** -Une ligne est décrite en deux modèles. -Le format de sortie change (nom de colonne, dtype, etc.) `df.loc[[111]]` `df.loc[111]` └ Les doubles parenthèses sont plus faciles à voir.
** ▼ Exemple de `df.loc [[111]]` **

Extraire avec loc (une seule colonne ①)


df.loc[[111]]

#production

	aaa	bbb	ccc	ddd
111	AAA	EEE	III	MMM

** ▼ Exemple de df.loc [111] **

Extraire avec loc (une seule colonne ②)


df.loc[111]


#production

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

③ Extrait par numéro de ligne

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

(3-1)df[n:m:l] Spécifiez les lignes à extraire à l'aide de tranches. └ "df": variable avec table └ "n": valeur de départ └ "m": Prix final └ "l": montant du changement

・ «N» et «l» peuvent être omis.

À propos de Slice


** ▼ Exemple: df [1: 3] ** Extrayez les 1ère et 2ème lignes. N'inclut pas la 3ème ligne (car le traitement se termine à la 3ème ligne)

Extraction de lignes


df[1:3]

#production

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

** ▼ Exemple: spécifiez la quantité de changement et extrayez **

df[1:5:2] De la 1ère à la 4ème ligne, extrayez les lignes avec des nombres augmentés de 2.

Extraction de lignes


df[1:5:2]

#production

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

** ▼ Lorsque la valeur initiale est omise ** La valeur initiale est considérée comme 0, et les lignes jusqu'au nombre spécifié (une avant) du haut peuvent être extraites.

df[:3] Extrait de 0 à 2ème ligne.

Extraction de lignes


df[:3]

#production

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

### (3-2) Extrait avec iloc

df.iloc[[n,m,,,]] └ "df": variable avec table └ ".iloc []": méthode spécifiée par le numéro de ligne / colonne └ "n" "m": spécifiez le numéro de ligne


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

Spécifié par numéro de ligne


df.iloc[[1,3]]

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

#### Lors de l'extraction d'une seule ligne Il existe deux modèles de description. `df.iloc[[n]]` `df.iloc[n]`

Différence du nombre de []. Le résultat de sortie est différent pour chacun. └ La sortie est plus facile à voir avec df.iloc [[n]].

** ▼ Exemple: df.iloc [[n]] ** Sortie pour les doubles parenthèses.

Spécifié par numéro de ligne


df.iloc[[3]]

#production
	aaa	bbb	ccc	ddd
444	DDD	HHH	LLL	PPP

** ▼ Exemple: `df.iloc [n]` ** Sortie pour les parenthèses simples.

Spécifié par numéro de ligne


df.iloc[3]

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

## 3. 3. Extraction d'éléments Il existe quatre méthodes principales à utiliser. ①loc ②iloc ③at ④iat

** ■ Il peut être grossièrement classé en deux types, "loc" et "at" **

〇Supplément: "at" est plus rapide.

** ■ Présence ou absence de «i» ** Avec ou sans le "i" au début, vous pouvez choisir de spécifier par nom ou par numéro.

・ Aucun: nom de la matrice ・ Oui: numéro de matrice


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

Code de création de table


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 ['nom de ligne', 'nom de colonne']

loc


df.loc[333,'bbb']

#production
# 'GGG'

(3-2) iloc `df.iloc ['numéro de ligne', 'numéro de colonne']`

iloc


df.iloc[2,1]

#production
# 'GGG'

(3-3) at `df.at ['nom de ligne', 'nom de colonne']`

at


df.at[333,'bbb']

#production
# 'GGG'

(3-4) iat `df.at ['numéro de ligne', 'numéro de colonne']`

iat


df.iat[2,1]

#production
# 'GGG'

## 4. Changement de données ### Changer en spécifiant un élément Si vous spécifiez un élément et le remplacez, les données seront remplacées. Il existe quatre méthodes principales à utiliser.

①loc ②iloc ③at ④iat

<détails>

Détails </ summary>
** ■ Il peut être grossièrement classé en deux types, "loc" et "at" **

  • "Loc": spécifiez par plage. Vous pouvez également obtenir plusieurs lignes et colonnes.
  • "At": n'obtient qu'un seul élément.

** ■ Présence ou absence de «i» ** Avec ou sans le "i" au début, vous pouvez choisir de spécifier par nom ou par numéro.

・ Aucun: nom de la matrice ・ Oui: numéro de matrice


### Table originale Utilisez le tableau ci-dessous pour réécrire les données. ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563526/cb3b210a-31af-2069-e91d-14e01ea77047.png)

Code de création de table


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

#production

	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

#production

	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

#production

	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

#production

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

### ■ Modifier le nom de ligne et le nom de colonne ① Lors de la création d'un tableau Utiliser les options DataFrame · Colonnes: option de colonnes · Ligne: option d'index

② Plus tard (collectivement) -Colonnes: méthode des colonnes -Line: méthode d'index

③ Plus tard (désigné) -Renommer la méthode └ "columns = {}": changer le nom de la colonne └ "index = {}": modifier le nom de la ligne

** ▶ Comment changer le nom de ligne et le nom de colonne ici **



> Page officielle - [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)
[Retour en haut](# Comment obtenir et modifier les valeurs de la matrice à partir de la table python)

Recommended Posts

[Python] Comment obtenir et modifier les lignes / colonnes / valeurs d'une table.
[Python] Comment ajouter des lignes et des colonnes à une table (pandas DataFrame)
Comment obtenir stacktrace en python
Comment obtenir une chaîne à partir d'un argument de ligne de commande en python
[Python] Comment supprimer des lignes et des colonnes dans une table (liste des options de méthode de dépôt)
[Python] Comment créer une table à partir d'une liste (opération de base de création de table / changement de nom de matrice)
Comment ouvrir un navigateur Web à partir de python
Comment générer un objet Python à partir de JSON
Comment obtenir la valeur du magasin de paramètres dans lambda (en utilisant python)
Comment enregistrer une table récupérée par python en csv
Comment changer la version de Python
[Python] Comment appeler une fonction de c depuis python (édition ctypes)
Comment découper un bloc de plusieurs tableaux à partir d'un multiple en Python
Comment exécuter un programme Python à partir d'un script shell
J'ai essayé "Comment obtenir une méthode décorée en Python"
Comment obtenir la dernière (dernière) valeur d'une liste en Python
Comment obtenir une liste d'exceptions intégrées pour python
[Python] Comment générer une table pandas dans un fichier Excel
Comment obtenir une liste de liens à partir d'une page de wikipedia
Comment démarrer avec Python
[Python] Comment permuter les valeurs de tableau
Comment accéder à wikipedia depuis python
N'a pas changé de Python 2 à 3
Comment obtenir toutes les valeurs possibles dans une expression régulière
Comment utiliser la reconnaissance visuelle pour obtenir l'ID de ligne d'une fille
[Python] Comment obtenir une valeur avec une clé autre que value avec Enum
Comment obtenir un ingénieur de la trentaine
Comment supprimer les doublons d'une liste Python tout en préservant l'ordre.
Comment créer un clone depuis Github
[Python] Comment rendre une classe itérable
[Python] Comment convertir une liste bidimensionnelle en liste unidimensionnelle
[Python] Comment inverser une chaîne de caractères
Comment afficher la table quatre-vingt-dix-neuf en python
Comment accéder à RDS depuis Lambda (python)
Comment créer un référentiel à partir d'un média
Comment exécuter des scripts Maya Python
[Python] Comment extraire / supprimer / convertir une matrice contenant des valeurs manquantes (NaN)
[Mémo Python] Je souhaite obtenir un nombre hexadécimal à 2 chiffres à partir d'un nombre décimal
Pour trouver le nom de la vue avec l'espace de noms à partir de l'URL (path_info) dans Django
Comment obtenir un exemple de rapport à partir d'une valeur de hachage à l'aide de l'API de Virus Total
Envoyer un message de Slack à un serveur Python
Modifier Excel à partir de Python pour créer un tableau croisé dynamique
Comment lire un fichier CSV avec Python 2/3
Comment effacer un taple dans une liste (Python)
Comment incorporer des variables dans des chaînes python
Comment créer un objet fonction à partir d'une chaîne
[Python] Comment changer le format de la date (format d'affichage)
Étude de Python Hour7: Comment utiliser les classes
Comment obtenir les résultats de l'identifiant dans Celery
Comment créer un fichier JSON en Python
[Python] Comment lire les données de CIFAR-10 et CIFAR-100
[python] Créer une table de pandas DataFrame vers postgres
[Bash] Obtenez la puissance de python de bash en utilisant la documentation ici
Comment ajouter un chemin de recherche de module Python
Comment bien gérer les commandes Linux à partir de Python
Comment extraire le coefficient de la formule minute