Recherche…


Utiliser .iloc

.iloc utilise des entiers pour lire et écrire des données sur un DataFrame.

Tout d'abord, créons un DataFrame:

df = pd.DataFrame({'one': [1, 2, 3, 4, 5],
                   'two': [6, 7, 8, 9, 10],
              }, index=['a', 'b', 'c', 'd', 'e'])

Ce DataFrame ressemble à:

   one  two
a    1    6
b    2    7
c    3    8
d    4    9
e    5   10

Maintenant, nous pouvons utiliser .iloc pour lire et écrire des valeurs. Lisons la première ligne, première colonne:

print df.iloc[0, 0]

Cela va imprimer:

1

Nous pouvons également définir des valeurs. Permet de définir la deuxième colonne, deuxième ligne à quelque chose de nouveau:

df.iloc[1, 1] = '21'

Et puis regardez pour voir ce qui s'est passé:

print df 

   one two
a    1   6
b    2  21
c    3   8
d    4   9
e    5  10

Utiliser .loc

.loc utilise des étiquettes pour lire et écrire des données.

Configurons un DataFrame:

df = pd.DataFrame({'one': [1, 2, 3, 4, 5],
                   'two': [6, 7, 8, 9, 10],
                  }, index=['a', 'b', 'c', 'd', 'e'])

Ensuite, nous pouvons imprimer le DataFrame pour voir la forme:

print df 

Cela va sortir

   one  two
a    1    6
b    2    7
c    3    8
d    4    9
e    5   10

Nous utilisons les étiquettes de colonne et de ligne pour accéder aux données avec .loc. Définissons la ligne 'c', colonne 'two' à la valeur 33:

df.loc['c', 'two'] = 33 

Voici à quoi ressemble maintenant le DataFrame:

   one  two
a    1    6
b    2    7
c    3   33
d    4    9
e    5   10

À noter que l'utilisation de df['two'].loc['c'] = 33 peut ne pas signaler un avertissement, et peut même fonctionner, mais l'utilisation de df.loc['c', 'two'] est garantie. , tandis que le premier n'est pas.

Nous pouvons lire des tranches de données, par exemple

print df.loc['a':'c'] 

imprimera les lignes a à c. C'est inclusif.

   one  two
a    1    6
b    2    7
c    3    8

Et enfin, nous pouvons faire les deux ensemble:

print df.loc['b':'d', 'two']

Produira les lignes b à c de la colonne "deux". Notez que l'étiquette de colonne n'est pas imprimée.

b    7
c    8
d    9

Si .loc est fourni avec un argument entier qui n'est pas une étiquette, il retourne à l'indexation entière des axes (le comportement de .iloc). Cela rend possible l'indexation mixte d'étiquettes et d'entiers:

df.loc['b', 1]

renverra la valeur dans la 2ème colonne (index commençant à 0) dans la ligne 'b':

7


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow