Accéder au contenu principal

Tutoriel Python sur la sélection de colonnes

Utilisez Python Pandas et sélectionnez des colonnes dans les DataFrames. Suivez notre tutoriel avec des exemples de code et apprenez différentes façons de sélectionner vos données dès aujourd'hui !
Actualisé 4 oct. 2024  · 7 min de lecture

Pour exécuter facilement tout le code d'exemple de ce tutoriel, vous pouvez créer un classeur DataLabgratuit, dans lequel Python est préinstallé et qui contient tous les exemples de code.

Si vous disposez d'un DataFrame et que vous souhaitez accéder à quelques lignes/colonnes spécifiques de ce DataFrame ou les sélectionner, vous pouvez utiliser des crochets ou d'autres méthodes avancées telles que loc et iloc.

Sélection de colonnes à l'aide de crochets

Supposons maintenant que vous souhaitiez sélectionner la colonne du pays dans le DataFrame brics. Pour ce faire, vous devez taper brics puis l'intitulé de la colonne à l'intérieur des crochets.

Sélection d'une colonne

          country     capital        area    population
BR         Brazil    Brasilia       8.516        200.40
RU         Russia      Moscow      17.100        143.50
IN         India    New Dehli       3.286       1252.00
CH         China      Beijing       9.597       1357.00
SA  South Africa     Pretoria       1.221         52.98
brics["country"]
BR         Brazil
RU         Russia
IN         India
CH         China
SA  South Africa
Name: country, dtype: object

Vérifier le type d'objet

Vérifions le type de l'objet renvoyé par la fonction type.

type(brics["country"])
pandas.core.series.Series

Comme le montre le résultat ci-dessus, il s'agit d'une série pandas! La série peut être considérée comme un tableau unidimensionnel qui peut être étiqueté de la même manière qu'un DataFrame.

Si vous souhaitez sélectionner des données et les conserver dans un DataFrame, vous devez utiliser des doubles crochets :

brics[["country"]]
BR         Brazil
RU         Russia
IN         India
CH         China
SA  South Africa

Si nous vérifions le type de cette sortie, il s'agit d'un DataFrame ! Mais avec une seule colonne.

type(brics[["country"]])
pandas.core.frame.DataFrame

Sélection de plusieurs colonnes

Vous pouvez étendre cet appel pour sélectionner deux colonnes. Essayons de sélectionner country et capital.

brics[["country", "capital"]]
          country     capital
BR         Brazil    Brasilia
RU         Russia      Moscow
IN         India    New Dehli
CH         China      Beijing
SA  South Africa     Pretoria

Si vous y regardez de plus près, vous placez en fait une liste avec les étiquettes des colonnes à l'intérieur d'une autre série de crochets et vous vous retrouvez avec un sous DataFrame ne contenant que les colonnes country et capital.

Apprenez Python à partir de zéro

Maîtrisez Python pour la science des données et acquérez des compétences recherchées.
Commencez à apprendre gratuitement

Sélection de rangées à l'aide de crochets

Les crochets ne se limitent pas à la sélection de colonnes. Vous pouvez également les utiliser pour obtenir des lignes, ou des observations, à partir d'un DataFrame.

Exemple

Vous ne pouvez sélectionner des lignes à l'aide de crochets que si vous spécifiez une tranche, comme 0:4. De plus, vous utilisez ici les index entiers des lignes, et non les étiquettes des lignes !

Pour obtenir les deuxième, troisième et quatrième lignes du DataFrame brics, nous utilisons les tranches 1 à 4. Rappelez-vous que la fin de la tranche est exclusive et que l'index commence à zéro.

brics[1:4]
          country     capital     area    population
RU         Russia      Moscow   17.100        143.50
IN         India    New Dehli    3.286       1252.00
CH         China      Beijing    9.597       1357.00

Ces crochets fonctionnent, mais ils n'offrent qu'une fonctionnalité limitée. Idéalement, nous voudrions quelque chose de similaire aux tableaux 2D Numpy, où vous utilisez également des crochets. L'index, ou la tranche, avant la virgule fait référence aux lignes, et la tranche après la virgule fait référence aux colonnes.

Exemple de tableau 2D Numpy:

my_array[rows, columns]

Si vous voulez faire quelque chose de similaire avec pandas, vous devez utiliser les fonctions loc et iloc.

  • loc: basé sur l'étiquetage
  • iloc: entier basé sur la position

loc Fonction

loc est une technique permettant de sélectionner des parties de vos données sur la base d'étiquettes. Examinons le DataFrame brics et obtenons les lignes pour la Russie.

Pour ce faire, vous placerez l'étiquette qui vous intéresse entre crochets après loc.

Sélection des lignes

brics.loc["RU"]
country     Russia
capital     Moscow
area          17.1
population   143.5
Name: RU, dtype: object

Nous obtenons une série de pandas contenant toutes les informations sur les rangs, mais de manière peu pratique, ces informations sont présentées sur des lignes différentes. Pour obtenir un DataFrame, nous devons placer la chaîne RU dans une autre paire de crochets. Nous pouvons également sélectionner plusieurs lignes en même temps. Supposons que vous souhaitiez également inclure l'Inde et la Chine. Il suffit d'ajouter ces étiquettes de ligne à la liste.

brics.loc[["RU", "IN", "CH"]]
          country     capital     area    population
RU         Russia      Moscow   17.100        143.50
IN         India    New Dehli    3.286       1252.00
CH         China      Beijing    9.597       1357.00

La différence entre l'utilisation de loc et les crochets de base est que vous pouvez étendre la sélection à l'aide d'une virgule et d'une spécification des colonnes qui vous intéressent.

Sélection de lignes et de colonnes

Étendons l'appel précédent pour n'inclure que les colonnes country et capital. Nous ajoutons une virgule et dressons la liste des intitulés de colonnes que nous souhaitons conserver. L'intersection est renvoyée.

brics.loc[["RU", "IN", "CH"], ["country", "capital"]]
          country     capital
RU         Russia      Moscow
IN         India    New Dehli
CH         China      Beijing

Vous pouvez également utiliser loc pour sélectionner toutes les lignes mais seulement un nombre spécifique de colonnes. Remplacez simplement la première liste qui spécifie les étiquettes de ligne par deux points. Une tranche qui va du début à la fin. Cette fois, nous récupérons toutes les lignes mais seulement deux colonnes.

Sélection de toutes les lignes et de colonnes spécifiques

brics.loc[:, ["country", "capital"]]
          country     capital
BR         Brazil    Brasilia
RU         Russia      Moscow
IN         India    New Dehli
CH         China      Beijing
SA  South Africa     Pretoria

iloc Fonction

La fonction iloc vous permet de sous-répertorier les DataFrames pandas en fonction de leur position ou de leur index.

Sélection des lignes

Utilisons les mêmes données et des exemples similaires à ceux que nous avons utilisés pour loc. Commençons par le rang de la Russie.

brics.iloc[[1]]
          country     capital     area    population
RU         Russia      Moscow   17.100        143.50

Pour obtenir les rangs de la Russie, de l'Inde et de la Chine. Vous pouvez maintenant utiliser une liste d'index 1, 2, 3.

brics.iloc[[1, 2, 3]]
          country     capital     area    population
RU         Russia      Moscow   17.100        143.50
IN         India    New Dehli    3.286       1252.00
CH         China      Beijing    9.597       1357.00

Sélection de lignes et de colonnes

Comme pour loc, nous pouvons également sélectionner des lignes et des colonnes à l'aide de iloc. Ici, nous sélectionnerons les lignes pour la Russie, l'Inde et la Chine et les colonnes country et capital.

brics.iloc[[1, 2, 3], [0, 1]]
          country     capital
RU         Russia      Moscow
IN         India    New Dehli
CH         China      Beijing

Sélection de toutes les lignes et de colonnes spécifiques

Enfin, si vous souhaitez sélectionner toutes les lignes mais ne conserver que les colonnes country et capital, c'est possible :

brics.loc[:, [0, 1]]
          country     capital
BR         Brazil    Brasilia
RU         Russia      Moscow
IN         India    New Dehli
CH         China      Beijing
SA  South Africa     Pretoria

loc et iloc sont assez similaires. La seule différence réside dans la manière dont vous vous référez aux colonnes et aux lignes.

Exemple interactif de sélection d'un sous-ensemble de données

Dans l'exemple suivant, les données sur les voitures sont importées d'un fichier CSV sous la forme d'un DataFrame Pandas. Pour ne sélectionner que les cars_per_cap column des voitures, vous pouvez utiliser :

cars['cars_per_cap']
cars[['cars_per_cap']]

La version à simple crochet donne une série Pandas ; la version à double crochet donne un DataFrame Pandas.

  • Vous utiliserez des crochets simples pour imprimer la colonne country de cars sous la forme d'une série Pandas.
  • Utilisez ensuite des doubles crochets pour imprimer la colonne country de cars sous la forme d'un DataFrame Pandas.
  • Enfin, utilisez les doubles crochets pour imprimer un DataFrame avec les colonnes country et drives_right de cars, dans cet ordre.
# Import cars data
import pandas as pd
cars = pd.read_csv('cars.csv', index_col = 0)

# Print out country column as Pandas Series
print(cars['country'])

# Print out country column as Pandas DataFrame
print(cars[['country']])

# Print out DataFrame with country and drives_right columns
print(cars[['country', 'drives_right']])

Lorsque nous exécutons le code ci-dessus, nous obtenons le résultat suivant :

US     United States
AUS        Australia
JPN            Japan
IN             India
RU            Russia
MOR          Morocco
EG             Egypt
Name: country, dtype: object
           country
US   United States
AUS      Australia
JPN          Japan
IN           India
RU          Russia
MOR        Morocco
EG           Egypt
           country  drives_right
US   United States          True
AUS      Australia         False
JPN          Japan         False
IN           India         False
RU          Russia          True
MOR        Morocco          True
EG           Egypt          True

Essayez-le vous-même.

Pour en savoir plus sur les pandas, consultez cette vidéo tirée de notre cours Intermediate Python.

Ce contenu est extrait du cours Python intermédiaire de DataCamp par Hugo Bowne-Anderson.

Sujets

Cours Python

Cours

Intermediate Python

4 hr
1.2M
Level up your data science skills by creating visualizations using Matplotlib and manipulating DataFrames with pandas.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow
Apparenté

blog

Les 20 meilleures questions d'entretien pour les flocons de neige, à tous les niveaux

Vous êtes actuellement à la recherche d'un emploi qui utilise Snowflake ? Préparez-vous à répondre à ces 20 questions d'entretien sur le flocon de neige pour décrocher le poste !
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

15 min

Voir plusVoir plus