Python ou SQL pour l'analyse des données d'introduction en 2020? Comparaison de sept opérations courantes!

Auteur | Liu Zaoqi

Source | Early Python (ID: zaoqi-python)

Image de tête | Téléchargement CSDN d'Oriental IC

SQL et Python sont presque deux langages que les analystes de données actuels doivent comprendre. Quelle est la différence entre eux lors du traitement des données? Cet article utilisera  MySQL  et  pandas  pour montrer sept opérations couramment utilisées dans l'analyse de données. J'espère qu'il pourra aider les lecteurs qui maîtrisent l'un de ces langages à comprendre rapidement l'autre méthode !

Avant de lire cet article, vous pouvez visiter le site Web ci-dessous pour télécharger les exemples de données utilisés dans cet article, et les importer dans MySQL et pandas, et lire en tapant le code!

https://raw.githubusercontent.com/pandas-dev/pandas/master/pandas/tests/io/data/csv/tips.csv

sélectionner

En SQL, nous pouvons utiliser l'  instruction SELECT  pour sélectionner des données dans une table, et les résultats sont stockés dans une table de résultats, la syntaxe est la suivante:

SELECT column_name,column_name
FROM table_name;

Si vous ne souhaitez pas afficher tous les enregistrements , vous pouvez utiliser  TOP  ou  LIMIT  pour limiter le nombre de lignes. Par conséquent, pour sélectionner certaines colonnes dans le tableau des astuces, vous pouvez utiliser l'instruction suivante

SELECT total_bill, tip, smoker, time
FROM tips
LIMIT 5;

Dans les pandas, nous pouvons compléter la sélection de colonnes en passant la liste des noms de colonnes au DataFrame 

Dans SQL, vous pouvez effectuer des calculs lors de la sélection, comme l'ajout d'une colonne

SELECT *, tip/total_bill as tip_rate
FROM tips
LIMIT 5;

Cela peut également être fait en utilisant DataFrame.assign ()  dans les pandas 

  

Trouver

Recherche de condition unique

En SQL, la clause WHERE  est utilisée pour extraire les enregistrements qui remplissent les conditions spécifiées, la syntaxe est la suivante

SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;

Par exemple, recherchez l'enregistrement de temps = dîner  dans les données d'exemple 

SELECT *
FROM tips
WHERE time = 'Dinner'
LIMIT 5;

Dans les pandas, la recherche en fonction des conditions peut prendre plusieurs formes, par exemple, vous pouvez passer un objet Series contenant  True / False  à un DataFrame, et renvoyer toutes les lignes avec True

Recherche multi-conditions

En SQL, la recherche multi-conditions peut être effectuée à l'aide de AND / OR

SELECT *
FROM tips
WHERE time = 'Dinner' AND tip > 5.00;

Il y a des opérations similaires chez les pandas

Rechercher des valeurs vides

La vérification des valeurs nulles dans les pandas se fait à l'aide des  méthodes notna ()  et  isna ()  .

frame[frame['col1'].notna()]

Peut utiliser IS NULL  et  IS NOT NULL pour  terminer en SQL 

SELECT *
FROM frame
WHERE col2 IS NULL;


SELECT *
FROM frame
WHERE col1 IS NOT NULL;

  Mise à jour

Utiliser UPDATE dans SQL 

UPDATE tips
SET tip = tip*2
WHERE tip < 2;

Dans les pandas, il existe de nombreuses façons, comme l'utilisation de la   fonction loc

tips.loc[tips['tip'] < 2, 'tip'] *= 2

effacer

Utiliser DELETE dans SQL 

DELETE FROM tips
WHERE tip > 9;

Dans les pandas, nous choisissons les lignes à conserver au lieu de les supprimer

tips = tips.loc[tips['tip'] <= 9]

  Regroupement

Dans les pandas, utilisez la   méthode groupby () pour effectuer le regroupement. groupby ()  fait généralement référence à un processus dans lequel nous voulons diviser l'ensemble de données en plusieurs groupes, appliquer certaines fonctions (généralement l'agrégation), puis regrouper les groupes.

Une opération SQL courante consiste à obtenir le nombre d'enregistrements dans chaque groupe dans l'ensemble de données. Par exemple, en regroupant et en interrogeant le sexe

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

L'opération équivalente chez pandas est de noter que dans le code ci-dessus, nous utilisons size ()  au lieu de count ().   C'est parce que count () applique la fonction à chaque colonne et renvoie le nombre d'enregistrements non vides dans chaque colonne!

lien

Dans les pandas, vous pouvez utiliser  join ()  ou  merge ()  pour vous connecter. Chaque méthode a des paramètres, vous permettant de spécifier le type de jointure (GAUCHE, DROITE, INTÉRIEURE, PLEINE) ou la colonne à joindre.

Maintenant, recréons deux ensembles d'exemples de données et utilisons du code pour démontrer différentes connexions

df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'],
   ....:                     'value': np.random.randn(4)})
   ....: 


df2 = pd.DataFrame({'key': ['B', 'D', 'D', 'E'],
   ....:                     'value': np.random.randn(4)})

Connexion interne

Les jointures internes utilisent des opérateurs de comparaison pour faire correspondre les lignes de deux tables en fonction des valeurs des colonnes partagées par chaque table. Les jointures internes sont implémentées dans SQL à l'aide de  INNER JOIN

SELECT *
FROM df1
INNER JOIN df2
  ON df1.key = df2.key;

Dans les pandas, vous pouvez utiliser  merge () merge ()  fournit des paramètres pour joindre les colonnes d'un DataFrame avec l'index d'un autre DataFrame ????

Jointure externe gauche / droite

Pour obtenir des jointures externes gauche / droite en SQL, vous pouvez utiliser  LEFT OUTER JOIN  et  RIGHT OUTER JOIN

SELECT *
FROM df1
LEFT OUTER JOIN df2
  ON df1.key = df2.key;


SELECT *
FROM df1
RIGHT OUTER JOIN df2
  ON df1.key = df2.key;

Les pandas peuvent être utilisés pour obtenir la même chose dans la  fusion ()  et spécifier comment les mots-clés pour  gauche  ou  droite  pour

Entièrement connecté

La jointure complète renvoie toutes les lignes des tables de gauche et de droite, qu'elles correspondent ou non, mais toutes les bases de données ne la prennent pas en charge. Par exemple, mysql ne la prend pas en charge . FULL OUTER JOIN peut être utilisée pour implémenter une jointure complète dans SQL 

SELECT *
FROM df1
FULL OUTER JOIN df2
  ON df1.key = df2.key;

Dans les pandas, vous pouvez également utiliser  merge ()  et spécifier le mot-clé how comme  externe

  fusionner

L'opération UNION dans SQL est utilisée pour fusionner les jeux de résultats d'au moins deux instructions SELECT. UNION est  similaire à  UNION ALL  , mais UNION supprimera les lignes en double. L'exemple de code est le suivant

SELECT city, rank
FROM df1
UNION ALL
SELECT city, rank
FROM df2;
/*
         city  rank
      Chicago     1
San Francisco     2
New York City     3
      Chicago     1
       Boston     4
  Los Angeles     5
*/

Dans les pandas, vous pouvez utiliser  concat () pour  atteindre  UNION ALL


Ce qui précède est  UNION ALL pour  conserver les valeurs en double, si vous souhaitez supprimer, vous pouvez utiliser   drop_duplicates ()

Ce qui précède est tout le contenu de cet article. Vous pouvez voir que différentes langues ont des caractéristiques différentes dans différents scénarios. Si vous voulez en savoir plus à ce sujet, vous pouvez lire les documents officiels et pratiquer davantage!

Source: document officiel pandas

https://pandas.pydata.org/docs/getting_started/comparison/comparison_with_sql.html

Compilation: Liu Zaoqi (avec suppression et modification)


更多精彩推荐
☞北京 10 年,难说再见!
☞致敬所有的程序员们~ | 每日趣闻
☞腾讯否认微信测试语音消息进度调节;监证会同意蚂蚁集团科创板IPO注册;React 17 正式版发布|极客头条
☞韩辉:国产操作系统的最大难题在于解决“生产关系”
☞蓝色巨人IBM全力奔赴的混合云之旅能顺利吗?
☞区块链赋能供应链金融|应用优势与四类常见模式
点分享点点赞点在看

Je suppose que tu aimes

Origine blog.csdn.net/csdnsevenn/article/details/109233553
conseillé
Classement