À partir d'une table créée avec Pandas DataFrame ・ ** Comment extraire l'élément spécifié **
▼ Table à utiliser (affectée à la variable "df")
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 ()
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']
Extraire par numéro de colonne
df.columns[2]
#production
# 'ccc'
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
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
df.loc[:, 'aaa']
=df.loc[:, ['aaa']]
Extrait avec iloc
df.iloc[:, [1,2]]
#production
bbb ccc
111 EEE III
222 FFF JJJ
333 GGG KKK
444 HHH LLL
df.loc[:, 2]
= df.loc[:, [2]]
** ▼ 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
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]
Extraire par numéro de ligne
df.index[2]
#production
# '333'
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[333:]
#production
aaa bbb ccc ddd
333 CCC GGG KKK OOO
444 DDD HHH LLL PPP
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
③-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.
Extraction de lignes
df[1:3]
#production
aaa bbb ccc ddd
222 BBB FFF JJJ NNN
333 CCC GGG KKK OOO
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
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
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
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
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
Spécifié par numéro de ligne
df.iloc[3]
#production
aaa DDD
bbb HHH
ccc LLL
ddd PPP
Name: 444, dtype: object
** ■ 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
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'
iloc
df.iloc[2,1]
#production
# 'GGG'
at
df.at[333,'bbb']
#production
# 'GGG'
iat
df.iat[2,1]
#production
# 'GGG'
①loc ②iloc ③at ④iat
<détails> ** ■ 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 (4-1) loc (4-2) iloc (4-3) at (4-4) iat ② 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 **
### 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
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
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
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
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
> 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)