Filtrage des lignes dans les DataFrames Pandas
Pandas est une puissante bibliothèque en Python pour la manipulation et l'analyse de données. Une tâche courante consiste à sélectionner des lignes d'un DataFrame en fonction des valeurs de colonne, similaire à la table SELECT * FROM de SQL WHERE column_name = some_value.
Ce guide vous guidera à travers différentes méthodes pour y parvenir dans Pandas, facilitant ainsi le filtrage efficace de vos données. Que vous soyez débutant ou utilisateur expérimenté, ces conseils amélioreront vos compétences en matière de traitement des données.
Commande | Description |
---|---|
pd.DataFrame(data) | Crée un DataFrame à partir d'un dictionnaire de données. |
df[column_name] | Accède à une colonne du DataFrame par son nom. |
df[condition] | Filtre le DataFrame en fonction d'une condition appliquée à une colonne. |
print(selected_rows) | Imprime le DataFrame ou un sous-ensemble de celui-ci sur la console. |
df[df['Age'] >df[df['Age'] > 25] | Sélectionne les lignes dans lesquelles les valeurs de la colonne « Âge » sont supérieures à 25. |
df[df['City'] == 'Chicago'] | Sélectionne les lignes dans lesquelles les valeurs de la colonne « Ville » sont égales à « Chicago ». |
Comprendre la sélection de lignes DataFrame dans Pandas
Les scripts fournis montrent comment sélectionner des lignes d'un DataFrame en fonction des valeurs de colonne à l'aide de la bibliothèque Pandas en Python. Le premier script commence par importer la bibliothèque Pandas avec le import pandas as pd commande. Il crée ensuite un exemple de DataFrame à l'aide d'un dictionnaire de données, qui est converti en DataFrame avec le pd.DataFrame(data) commande. Le script illustre ensuite deux méthodes de sélection de lignes : sélectionner les lignes dont la valeur de la colonne "Âge" est supérieure à 25 à l'aide de df[df['Age'] > 25], et en sélectionnant les lignes où la valeur de la colonne « Ville » est « Chicago » à l'aide de df[df['City'] == 'Chicago']. Ces DataFrames filtrés sont imprimés à l'aide du print() fonction pour afficher les lignes sélectionnées.
Le deuxième script suit une structure similaire mais utilise des données et des critères de sélection différents. Il crée un DataFrame avec des informations sur le produit, notamment les colonnes « Produit », « Prix » et « Stock ». Les lignes sont sélectionnées où le « Prix » est inférieur ou égal à 200 avec df[df['Price'] <= 200], et où le « Stock » est supérieur à 40 en utilisant df[df['Stock'] > 40]. Le but de ces scripts est de montrer comment filtrer les lignes DataFrame en fonction de conditions spécifiques, de la même manière que vous utiliseriez une requête SQL pour sélectionner des lignes dans une table en fonction d'une valeur de colonne. En comprenant et en appliquant ces commandes, vous pouvez manipuler et analyser efficacement les données de vos DataFrames.
Sélection de lignes dans un DataFrame à l'aide des valeurs de colonne dans Pandas
Python avec la bibliothèque Pandas
# Importing the necessary library
import pandas as pd
# Creating a sample DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
'Age': [24, 27, 22, 32, 29],
'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix']
}
df = pd.DataFrame(data)
# Selecting rows where Age is greater than 25
selected_rows = df[df['Age'] > 25]
print(selected_rows)
# Selecting rows where City is 'Chicago'
chicago_rows = df[df['City'] == 'Chicago']
print(chicago_rows)
Filtrage des données dans un DataFrame en fonction des critères de colonne
Python avec la bibliothèque Pandas
# Importing pandas library
import pandas as pd
# Creating a sample DataFrame
data = {'Product': ['A', 'B', 'C', 'D', 'E'],
'Price': [100, 150, 200, 250, 300],
'Stock': [30, 60, 90, 20, 50]}
df = pd.DataFrame(data)
# Selecting rows where Price is less than or equal to 200
affordable_products = df[df['Price'] <= 200]
print(affordable_products)
# Selecting rows where Stock is more than 40
in_stock = df[df['Stock'] > 40]
print(in_stock)
Techniques avancées pour sélectionner des lignes DataFrame dans Pandas
Outre le filtrage de base utilisant l'indexation booléenne, Pandas propose des techniques avancées pour sélectionner des lignes en fonction des valeurs des colonnes. Une méthode puissante consiste à utiliser le query() fonction, qui vous permet de filtrer les lignes avec une expression de requête, rendant la syntaxe plus propre et souvent plus intuitive. Par exemple, au lieu d'utiliser df[df['Age'] > 25], tu peux écrire df.query('Age > 25'). Cette méthode est particulièrement utile lorsqu'il s'agit de conditions plus complexes ou lorsque les noms de colonnes contiennent des espaces. De plus, le dix La fonction est utile lorsque vous souhaitez filtrer les lignes en fonction d'une liste de valeurs. Par exemple, pour sélectionner des lignes dans lesquelles la valeur de la colonne « Ville » est « Chicago » ou « New York », vous pouvez utiliser df[df['City'].isin(['Chicago', 'New York'])].
Une autre technique consiste à loc et iloc indexeurs. Le loc L'indexeur est basé sur des étiquettes, vous permettant de sélectionner des lignes en fonction des étiquettes de lignes et des noms de colonnes, tandis que iloc est basé sur un emplacement entier, permettant la sélection par numéros de ligne et de colonne. Cette flexibilité est particulièrement utile pour sélectionner des lignes en fonction d'une condition appliquée à une autre colonne. Par exemple, df.loc[df['Age'] > 25, 'Name'] renverra les noms des personnes âgées de plus de 25 ans. Ces méthodes élargissent votre boîte à outils pour gérer et analyser efficacement les données dans Pandas, offrant un code plus lisible et maintenable.
Questions et réponses courantes sur la sélection des lignes DataFrame
- Comment puis-je sélectionner des lignes en fonction de plusieurs conditions ?
- Vous pouvez utiliser le query() fonctionner ou combiner des conditions avec des opérateurs logiques comme & et |. Par exemple, df[(df['Age'] > 25) & (df['City'] == 'Chicago')].
- Puis-je filtrer les lignes en fonction d’une liste de valeurs ?
- Oui, utilisez le dix fonction. Par exemple, df[df['City'].isin(['Chicago', 'New York'])].
- Quelle est la différence entre loc et iloc?
- loc est basé sur des étiquettes, tandis que iloc est basé sur un nombre entier. Utiliser loc avec des étiquettes de ligne/colonne et iloc avec des indices de ligne/colonne.
- Comment puis-je sélectionner des colonnes spécifiques lors du filtrage des lignes ?
- Vous pouvez utiliser loc. Par exemple, df.loc[df['Age'] > 25, ['Name', 'City']].
- Comment gérer les valeurs manquantes lors de la sélection des lignes ?
- Utilisez le dropna() fonction pour supprimer les lignes avec des valeurs manquantes, ou fillna() pour les remplacer par une valeur spécifiée.
- Puis-je utiliser des expressions régulières pour filtrer les lignes ?
- Oui le str.contains() fonctionner avec le regex=True Le paramètre vous permet de filtrer les lignes en fonction de modèles d'expression régulière. Par exemple, df[df['Name'].str.contains('^A', regex=True)].
- Comment filtrer les lignes en fonction de l'index ?
- Vous pouvez utiliser loc avec le nom de l'index. Par exemple, df.loc[df.index == 'some_index'].
- Que se passe-t-il si les noms de mes colonnes contiennent des espaces ou des caractères spéciaux ?
- Utilisez le query() fonction qui peut gérer de tels noms de colonnes avec des backticks. Par exemple, df.query('`column name` == value').
Réflexions finales sur les techniques de sélection de lignes DataFrame
La sélection de lignes d'un DataFrame en fonction des valeurs de colonne dans Pandas est une compétence cruciale pour la manipulation des données. Les différentes méthodes discutées, dont l'indexation booléenne, query(), dix, et une indexation basée sur les étiquettes et l'emplacement des entiers avec loc et iloc, fournissent des outils puissants pour filtrer efficacement les données. La maîtrise de ces techniques permet une meilleure analyse des données et un code plus propre et plus maintenable.