Python Pandas parcourt des lignes et accède aux noms de colonnes
Je suis en train de parcourir les lignes d'un Python Pandas dataframe. Au sein de chaque ligne de la dataframe, je suis en train de faire référence à chaque valeur le long d'une ligne par son nom de colonne.
Voici ce que j'ai:
import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.rand(10,4),columns=list('ABCD'))
print df
A B C D
0 0.351741 0.186022 0.238705 0.081457
1 0.950817 0.665594 0.671151 0.730102
2 0.727996 0.442725 0.658816 0.003515
3 0.155604 0.567044 0.943466 0.666576
4 0.056922 0.751562 0.135624 0.597252
5 0.577770 0.995546 0.984923 0.123392
6 0.121061 0.490894 0.134702 0.358296
7 0.895856 0.617628 0.722529 0.794110
8 0.611006 0.328815 0.395859 0.507364
9 0.616169 0.527488 0.186614 0.278792
J'ai utilisé cette approche à réitérer, mais c'est seulement de me donner une partie de la solution - après la sélection d'une ligne dans chaque itération, comment puis-je accéder à la ligne des éléments par leur nom de colonne?
Voici ce que je suis en train de faire:
for row in df.iterrows():
print row.loc[0,'A']
print row.A
print row.index()
Ma compréhension est que la ligne est une Pandas série. Mais je n'ai aucun moyen de l'indice dans la Série.
Est-il possible d'utiliser des noms de colonne tout en une itération sur les lignes?
source d'informationauteur W R
Vous devez vous connecter pour publier un commentaire.
J'aime aussi
itertuples()
depuis ligne est un nom de n-uplets, si vous avez voulu dire pour les valeurs de l'accès sur chaque ligne, ce qui devrait être BEAUCOUP plus rapide
course de vitesse :
L'élément de
iterrows()
n'est pas une Série, mais un n-uplet (indice de Série), de sorte que vous pouvez décompresser le n-uplet dans la boucle comme ceci: