Bien que l'extraction d'élément soit basée sur le nom de ligne / nom de colonne, le numéro de ligne / numéro de colonne tel que loc, iloc, etc. J'ai posté un mémo car je n'ai pas trouvé la méthode d'extraction par nom de colonne x numéro de ligne.
À partir du bloc de données d'origine (avec nom de colonne, sans nom de ligne), divisez-vous en groupes avec des éléments spécifiques, Il était nécessaire de se référer à chaque trame de données une ligne à la fois pour le traitement.
À ce moment-là, j'ai essayé de traiter par numéro de ligne car je pouvais spécifier la colonne mais pas la ligne comme je m'y attendais. (J'ai pensé à reset_index, mais je suis sûr qu'il devrait être possible de spécifier par nom de colonne x numéro de ligne ...)
At et index peuvent être combinés et extraits avec df.at [df.index [row number], 'column name'] </ b>
(J'aurais dû lire correctement l'article ci-dessous ...) https://note.nkmk.me/python-pandas-at-iat-loc-iloc/
DataFrame
#Créer un bloc de données avec uniquement des noms de colonnes
df = pd.DataFrame({'person':['a','b','c','a','b','c'],\
'name':['aa','bb','cc','aaa','bbb','ccc'],\
'num':[100,200,300,1000,2000,3000]})
person name num
0 a aa 100
1 b bb 200
2 c cc 300
3 a aaa 1000
4 b bbb 2000
5 c ccc 3000
Dans les deux cas, il est possible d'extraire simplement la 0ème ligne (= aa) de la colonne "nom" du df d'origine.
person_0
df['name'][0]
#Sur la ligne extraite(Omoto)index=Peut être extrait car il y a 0
# aa
df.at[df.index[0],'name']
# aa
Cette fois, réduisez la colonne "personne" à la même personne, puis essayez d'obtenir la 0ème ligne.
person_a_0
# "person"Réduire à la ligne avec la colonne a
df_a = df[df['person']=="a"]
df_a
person name num
0 a aa 100
3 a aaa 1000
df_a['name'][0]
#Sur la ligne extraite(Omoto)index=Peut être extrait car il y a 0
# aa
df_a.at[df_a.index[0],'name']
# aa
person_b_0
# "person"Réduire à la ligne avec la colonne b
df_b = df[df['person']=="b"]
df_b
person name num
1 b bb 200
4 b bbb 2000
df_b['name'][0]
#Index sur la ligne extraite=Erreur car il n'y a pas de 0
df_b.at[df_b.index[0],'name']
# bb
En utilisant at, nous avons pu extraire des éléments par numéro de ligne pour n'importe quelle trame de données.
J'espère qu'il sera utile à ceux qui sont en difficulté parce qu'ils ne peuvent pas le trouver.
Recommended Posts