Traitement des données Pandas (2) -Sélection et tri des conditions de données!

Le dernier article présentait l'utilisation des fonctions de base de Pandas. Cet article présente principalement les fonctions de filtrage et de tri conditionnel de Pandas, également à l'aide d'une petite valise!

1. Lire les données

Utilisez d'abord la fonction read_csv () pour obtenir les données. Ces données sont les données d'une catégorie de produit, qui possède plusieurs attributs tels que la quantité (classe), le nom (nom), la description (description), le prix (prix):

import pandas as pd
url = "https://raw.githubusercontent.com/justmarkham/DAT8/master/data/chipotle.tsv"

chipo = pd.read_csv(url,sep = '\t')
chipo

1.png

2. Modifiez le type de données et le nom de caractère d'une colonne

Il y a un caractère "$" dans la colonne de prix dans les données lues. Lors du traitement des données, ce symbole doit être supprimé. Voici deux méthodes:

1. Remplacez la liste et la série, formatez d'abord chaque donnée dans une certaine colonne pour obtenir la liste, puis affectez la liste à la colonne à remplacer;

prices = [float(value[1:-1]) for value in chipo.item_price]
chipo.item_price = prices

2. Utilisez les fonctions apply () et lambda pour remplacer;

chipo['item_price'] = chipo['item_price'].apply(lambda x:float(x[1:-1]))

2.png

3. Éliminez les données répétées dans plusieurs colonnes

La redondance des données se produit souvent lors du traitement des données. À ce stade, il est nécessaire d'éliminer à l'avance les données redondantes dans les données (phénomène de plusieurs colonnes de données dans une ligne). La fonction utilisée est drop_duplicates (['nom de la colonne 1', 'nom de colonne 2']) fonction

Ce qui est supprimé ici, ce sont les données dupliquées dans les trois colonnes nom_élément, quantité et description_choix:

chipo_filtered = chipo.drop_duplicates(['item_name','quantity','choice_description'])
chipo_filtered

4.png

4. Dépistage de l'état

1. Filtrez les données dont la valeur de quantité est 1:

chipo_one_prod = chipo_filtered[chipo_filtered.quantity==1]
chipo_one_prod

6.png

2. Sur la base de 1, filtrez les données dont le prix_élément est supérieur à 10 et utilisez nunique pour afficher le nombre de données uniques nom_élément:

chipo_one_prod[chipo_one_prod['item_price']>10].item_name.nunique()


# 输出结果
# 25 

Le filtrage conditionnel en 3, 2 peut également être utilisé pour filtrer:

chipo.query("item_price>10")

5.png

4. Filtrer les données avec plusieurs conditions et filtrer les données qui satisfont item_name comme Chicken Bowl et quantité comme 1

chipo[(chipo['item_name']=='Chicken Bowl')&(chipo['quantity']==1)]

6.png

L'instruction conditionnelle & (et) utilisée en 5 et 4, voici les suivantes | (ou):

Besoin de répondre aux données dont le nom_article n'est pas Bol de poulet ou la quantité est 1

chipo[(chipo['item_name']!='Chicken Bowl')|(chipo['quantity']!=1)]

huo.png

4. Trier les données de colonne spécifiées

1. Triez une certaine colonne de données et le résultat final n'affichera que le résultat de cette colonne après le tri. Instruction de commande: data.column name.sort_values ​​(), par exemple, trie avec la colonne de item_name:

chipo.item_name.sort_values()# Sorting the values

15.png

2. Data.sort_values ​​(by = nom de la colonne) est trié par une certaine colonne de données, correspondant à d'autres données de colonne, la position doit être changée et toutes les données triées finalement affichées

chipo.sort_values(by = 'item_name')

7.png

Application avancée en 3, 2. Par exemple, ici, je veux voir le nom du produit le plus cher dans les données . Ici, j'utilise la méthode de 2 pour inverser le prix_élément, puis extrayez le nom_élément de la première ligne des données triées

chipo.sort_values(by = 'item_price',ascending = False).head(1).item_name

# 打印结果
# 3598    Chips and Fresh Tomato Salsa
Name: item_name, dtype: object

** 5, méthode data.loc pour filtrer les données **

Remarque: lorsque vous utilisez la méthode data.loc pour filtrer les données, seuls les noms de ligne et les noms de colonne peuvent être utilisés comme conditions de filtre

1. Filtrez les données avec les noms de ligne 2, 3 et les noms de colonne quantité, nom_élément, prix_élément

chipo.loc[[2,3],['quantity','item_name','item_price']]

8.png

2. Il n'y a aucune restriction sur le nom de la ligne, seules les données de nom de colonne et de nom_élément sont filtrées

chipo.loc[:,['quantity','item_name']]

9.png

3. Il n'y a aucune restriction sur les noms de colonnes, seules les données avec les noms de ligne 5 et 6 sont filtrées

chipo.loc[[5,6],:]

10.png

4. Application complète filtrée: deux colonnes de données dont le nom de ligne peut être divisible par 8 et les noms de colonne prix_élément et nom_élément

chipo.loc[chipo.index%8==0,['item_name','item_price']]

14.png

6, méthode data.iloc pour filtrer les données

L'idée des méthodes data.iloc et data.loc ne peut être sélectionnée qu'en fonction des valeurs d'index, et non des noms de colonne et des noms de ligne comme conditions de filtre

1. Filtrez les données des lignes 5 à 8 et des colonnes 2 et 3

chipo.iloc[4:8,1:3]

11.png

2. Filtrez les données des lignes 2 à 4;

chipo.iloc[1:4,:]

12.png

3. Filtrez les deux premières colonnes de données:

chipo.iloc[:,:2]

13.png

Ce qui précède est l'intégralité du contenu de cet article. Amis qui ne sont pas familiers avec l'application de certaines des méthodes qu'il contient, n'oubliez pas de suivre le code et de le saisir à nouveau pour approfondir votre compréhension!

Je suppose que tu aimes

Origine blog.csdn.net/weixin_42512684/article/details/107081907
conseillé
Classement