English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Opérations SQL Pandas

Exemples spécifiques d'opérations SQL Pandas

Comme de nombreux utilisateurs potentiels de Pandas sont familiers avec SQL, cette page vise à fournir quelques exemples pour expliquer comment utiliser Pandas pour exécuter diverses opérations SQL.

 import pandas as pd
 url = 'https://raw.github.com/pandasdev/
 pandas/master/pandas/tests/data/tips.csv'
 tips=pd.read_csv(url)
 print(tips.head())

Les résultats de l'exécution sont les suivants :

      total_bill        tip        sex        fumeur        jour        heure        taille
0        16.99  1.01   Femme        Non      Soleil        Dîner      2
1        10.34  1.66     Homme        Non      Soleil        Dîner      3
2        21.01  3.50        Homme        Non      Soleil        Dîner      3
3        23.68  3.31     Homme        Non      Soleil        Dîner      2
4        24.59  3.61   Femme        Non      Soleil        Dîner      4

Requête

Dans SQL, la sélection est effectuée par une liste séparée par des virgules des colonnes que vous avez choisies (ou en utilisant*Pour sélectionner toutes les colonnes):

 SELECT total_bill, tip, fumeur, heure
 from tips
 LIMIT 5;

Avec Pandas, la sélection de colonnes peut être effectuée en passant une liste de noms de colonnes à DataFrame :

 tips[['total_bill', 'tip', 'fumeur', 'heure']].head(5)

Voici un exemple complet :

 import pandas as pd
 url = 'https://raw.github.com/pandasdev/
 pandas/master/pandas/tests/data/tips.csv'
  
 tips=pd.read_csv(url)
 print(tips[['total_bill', 'tip', 'fumeur', 'heure']].head(5)

Les résultats de l'exécution sont les suivants :

   total_bill        tip        fumeur        heure
0       16.99  1.01      Non        Dîner
1       10.34  1.66      Non        Dîner
2       21.01  3.50        Non        Dîner
3       23.68  3.31      Non        Dîner
4       24.59  3.61      Non        Dîner

Appeler DataFrame sans liste de noms de colonnes affichera toutes les colonnes (similaire à celui de SQL de)*).

Requête de condition WHERE

Filtrage par clause WHERE dans SQL.

 SELECT * from tips WHERE heure = 'Dîner' LIMIT 5;

DataFrame peut être filtré de multiples manières. La méthode la plus intuitive est l'index binaire.

 tips[tips['heure'] == 'Dîner'].head(5)

Nous allons voir un exemple complet

 import pandas as pd
 url = 'https://raw.github.com/pandasdev/
 pandas/master/pandas/tests/data/tips.csv'
 tips=pd.read_csv(url)
 print(tips[tips['heure'] == 'Dîner']).head(5)

Les résultats de l'exécution sont les suivants :

     total_bill        tip        sex        fumeur        jour        heure        taille
0       16.99  1.01   Femme        Non      Soleil        Dîner    2
1       10.34  1.66     Homme        Non      Soleil        Dîner    3
2       21.01  3.50        Homme        Non      Soleil        Dîner    3
3       23.68  3.31     Homme        Non      Soleil        Dîner    2
4       24.59  3.61   Femme        Non      Soleil        Dîner    4

La phrase ci-dessus transmet une série de True / L'objet False est transmis à DataFrame et toutes les lignes contenant True sont retournées.

GroupBy grouping

Cette opération obtient le nombre d'enregistrements dans chaque groupe du jeu de données complet. Par exemple, recherchez le nombre de groupes de sexe et de quantité :

 SELECT sex, count(*)
 from tips
 GROUP BY sex;

Les opérations dans Pandas sont les suivantes :

 tips.groupby('sex').size()

Nous allons voir un exemple complet

 import pandas as pd
 url = 'https://raw.github.com/pandasdev/
 pandas/master/pandas/tests/data/tips.csv'
 tips=pd.read_csv(url)
 print(tips.groupby('sex').size())

Les résultats de l'exécution sont les suivants :

 sex
 Female 87
 Male 157
 dtype: int64

Requête du nombre de lignes N

Utilisation de LIMIT dans SQL pour retourner N lignes :

 SELECT * from tips
 LIMIT 5 ;

Les opérations dans Pandas sont les suivantes :

 tips.head(5)

Nous allons voir un exemple complet

 import pandas as pd
 url = 'https://raw.github.com/pandas-dev/pandas/master/pandas/tests/data/tips.csv'
 tips=pd.read_csv(url)
 tips = tips[['smoker', 'day', 'time']].head(5)
 print tips

Les résultats de l'exécution sont les suivants :

     smoker day time
0 No Sun Dinner
1      No Sun Dinner
2      No Sun Dinner
3      No Sun Dinner
4      No Sun Dinner