Pandas loc contre iloc | loc vs iloc dans les pandas pour sélectionner les données

Contenu

Quelle est la différence entre loc et iloc dans Pandas?

Notez cela comme l'une des questions les plus courantes que vous entendrez de la part des nouveaux arrivants en Python et des aspirants à la science des données.. Il y a une forte probabilité que vous rencontriez cette question lors d'un entretien avec un data scientist ou un analyste de données.

Franchement, même moi, j'étais d'abord confus quand j'ai commencé à apprendre Python il y a quelques années. Mais ne t'inquiètes pas! loc vs iloc dans Pandas peut être une question délicate, mais la réponse est assez simple une fois que vous avez compris.

python-6710206

Et c'est ce que j'ai l'intention de vous aider à réaliser dans cet article.. Nous ferons confiance aux Pandas, la bibliothèque python la plus populaire, pour répondre à la question loc vs. iloc.

La bibliothèque Pandas contient plusieurs méthodes pour un filtrage pratique des données: loc y iloc entre eux. Avec ces, nous pouvons effectuer pratiquement n'importe quelle tâche de sélection de données dans les blocs de données Pandas.

Consultez nos deux cours Python populaires si vous débutez dans la programmation Python. Ils sont gratuits et constituent une excellente première étape dans votre parcours d'apprentissage automatique.:

Bien, plongeons!

loc contre iloc dans les Pandas

Ensuite, Qu'est-ce que loc et iloc en premier lieu? Nous devons répondre à cette question avant de pouvoir comprendre où utiliser chacune de ces fonctions Pandas en Python.

loc dans les pandas

endroit c'est basé sur des balises, ce qui signifie que nous devons spécifier le nom des lignes et des colonnes que nous devons filtrer.

Par exemple, digamos que buscamos las filas cuyo indice il est 1, 2 O 100. Nous n'aurons pas le premier, la deuxième ou la centième rangée ici. En échange, nous n'obtiendrons les résultats que si le nom d'un index est 1, 2 O 100.

Ensuite, nous pouvons filtrer les données en utilisant la fonction loc dans Pandas même si les indices ne sont pas un entier dans notre ensemble de données.

iloc chez les pandas

D'un autre côté, iloc est basé sur des indices entiers. Alors ici, nous devons spécifier les lignes et les colonnes par leur indice entier.

Disons que nous recherchons les lignes avec index 1, 2 O 100. Reviendra le premier, deuxième et centième rangée, quel que soit le nom ou les étiquettes que nous avons dans l'index de notre ensemble de données.

Nous verrons plusieurs exemples dans cet article sur la façon d'utiliser endroit Oui iloc pour le processus de sélection et de mise à jour des données en Python.

loc et iloc en action (utiliser Pandas en Python)

Il est temps de mettre votre notebook Jupyter sous tension! Nous allons plonger directement dans le code et comprendre comment et où utiliser loc par rapport à iloc en Python.

Créer un exemple d'ensemble de données

Premier, nous avons besoin d'un ensemble de données pour appliquer loc et iloc, vérité? Faisons cela.

Nous allons créer un exemple d'ensemble de données sur les élèves composé de 5 Colonnes: âge, section, ville, sexe et couleur préférée. Cet ensemble de données contiendra à la fois des variables numériques et catégorielles:

loc1-6934081

Trouver toutes les lignes en fonction de n'importe quelle condition dans une colonne

Une chose que nous utilisons presque toujours lors de l'exploration d'un ensemble de données: filtrer les données en fonction d'une certaine condition. Par exemple, nous devrons peut-être trouver toutes les lignes de notre ensemble de données où l'âge est supérieur à x ans, ou la ville est Delhi, et ainsi de suite.

Nous pouvons résoudre les types de requêtes avec une simple ligne de code en utilisant pandas.DataFrame.loc[]. Nous avons juste besoin de passer la condition à l'intérieur de l'instruction loc.

Essayons de trouver les lignes où la valeur de l'âge est supérieur ou égal à 15:

loc2-2896211

Essayez le code ci-dessus dans la fenêtre d'encodage en direct ci-dessous !!

Trouver toutes les lignes avec plus d'une condition

de la même manière, nous pouvons également utiliser plusieurs conditions pour filtrer nos données, comment trouver toutes les lignes où l'âge est supérieur ou égal à 12 et le sexe est aussi masculin:

loc3-6955999

Sélectionnez une plage de lignes à l'aide de loc

en utilisant loc, on peut aussi couper le Pandas base de données sur une variété d'indices. Si les index ne sont pas ordonnés, sélectionnera uniquement les lignes avec les index 1 Oui 3 (comme vous le verrez dans l'exemple suivant). Et si les indices ne sont pas des nombres, donc nous ne pouvons pas diviser notre bloc de données.

Dans ce cas, nous devons utiliser le iloc fonction pour couper notre trame de données Pandas.

loc4-9678278

Sélectionnez uniquement les colonnes requises avec une condition

Nous pouvons également sélectionner les colonnes requises à partir des lignes qui satisfont à notre condition.

Par exemple, si notre jeu de données contient des centaines de colonnes et que nous ne voulons en voir que quelques-unes, nous pouvons ajouter une liste de colonnes après la condition à l'intérieur de l'instruction loc:

loc5-4966090

Mettre à jour les valeurs d'une colonne particulière dans les lignes sélectionnées

C'est l'une de mes astuces préférées des Python Pandas !!

Nous devons souvent mettre à jour les valeurs de notre ensemble de données en fonction d'une certaine condition. Par exemple, si les valeurs dans l'âge sont supérieurs à égaux à 12, nous voulons donc mettre à jour les valeurs de la section de colonne pour qu'elles soient « M ».

Nous pouvons le faire en exécutant un en boucle aussi, mais si notre ensemble de données est grand, il faudrait une éternité pour terminer la tâche. Utiliser loc dans Pandas, nous pouvons le faire en quelques secondes, Même dans des ensembles de données plus volumineux!

Nous avons juste besoin de spécifier la condition suivie de la colonne cible, puis d'affecter la valeur avec laquelle nous voulons mettre à jour:

loc6-8859253

Mettre à jour les valeurs de plusieurs colonnes dans les lignes sélectionnées

Si nous voulons mettre à jour plusieurs colonnes avec des valeurs différentes, on peut utiliser la syntaxe suivante.

Dans cet exemple, si la valeur de la colonne l'âge est supérieur à 20, alors la fonction loc mettra à jour les valeurs dans la colonne section avec « S« Et les valeurs des colonnes ville avec Pune:

loc7-1-6650949

Sélectionner des lignes avec des index à l'aide d'iloc

Quand on utilise iloc, nous devons spécifier les lignes et les colonnes par leur indice entier. Si nous voulons sélectionner uniquement la première et la troisième ligne, nous devons simplement le répertorier dans l'instruction iloc avec notre bloc de données:

loc8-1-9834937

Sélectionnez des lignes avec des indices particuliers et des colonnes particulières

Précédemment, nous sélectionnons certaines colonnes de l'ensemble de données à l'aide de la fonction loc. Nous pouvons le faire en utilisant la fonction iloc. Veuillez noter que nous devons fournir le numéro d'index de la colonne au lieu du nom de la colonne:

loc9-1-1194147

Sélectionnez une plage de lignes à l'aide d'iloc

Nous pouvons également couper une trame de données en utilisant iloc. Nous devons fournir le Indice de départ Oui index_fin + 1 couper un certain bloc de données. Si les indices ne sont pas les nombres ordonnés, puis il sélectionnera le index_début numéro de ligne jusqu'à index_fin:

loc10-2-6921312

Sélectionnez une plage de lignes et de colonnes à l'aide d'iloc

Couper le bloc de données en lignes et en colonnes. Dans l'exemple suivant, nous sélectionnons les lignes de (1-2) et les colonnes de (2-3).

loc11-1-9953955

loc et iloc sont deux fonctions super utiles dans Pandas sur lesquelles je compte beaucoup. Je suis sûr que vous les utiliserez également dans votre parcours d'apprentissage automatique. Et si vous êtes un utilisateur R qui passe à Python, Je suis sûr que vous trouverez loc et iloc assez intuitifs.

Je recommande fortement de prendre notre Python pour la science des données Oui Pandas pour l'analyse des données dans les cours Python si vous débutez en programmation Python. Ils sont gratuits et constituent une excellente première étape dans votre parcours d'apprentissage automatique.

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.

Haut-parleur de données