Python - Data Wrangling

Le traitement des données implique le traitement des données dans divers formats tels que - fusion, regroupement, concaténation, etc. dans le but de les analyser ou de les préparer à être utilisées avec un autre ensemble de données. Python a des fonctionnalités intégrées pour appliquer ces méthodes de lutte à divers ensembles de données pour atteindre l'objectif analytique. Dans ce chapitre, nous examinerons quelques exemples décrivant ces méthodes.

Fusion de données

La bibliothèque Pandas en python fournit une seule fonction, merge, comme point d'entrée pour toutes les opérations de jointure de base de données standard entre les objets DataFrame -

pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None,
left_index=False, right_index=False, sort=True)

Créons maintenant deux DataFrames différents et effectuons les opérations de fusion dessus.

# import the pandas library
import pandas as pd
left = pd.DataFrame({
         'id':[1,2,3,4,5],
         'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'],
         'subject_id':['sub1','sub2','sub4','sub6','sub5']})
right = pd.DataFrame(
         {'id':[1,2,3,4,5],
         'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'],
         'subject_id':['sub2','sub4','sub3','sub6','sub5']})
print left
print right

Ses output est comme suit -

Name  id   subject_id
0   Alex   1         sub1
1    Amy   2         sub2
2  Allen   3         sub4
3  Alice   4         sub6
4  Ayoung  5         sub5

    Name  id   subject_id
0  Billy   1         sub2
1  Brian   2         sub4
2  Bran    3         sub3
3  Bryce   4         sub6
4  Betty   5         sub5

Regroupement des données

Le regroupement des ensembles de données est un besoin fréquent dans l'analyse des données où nous avons besoin du résultat en termes de divers groupes présents dans l'ensemble de données. Panadas a des méthodes intégrées qui peuvent regrouper les données dans divers groupes.

Dans l'exemple ci-dessous, nous regroupons les données par année, puis obtenons le résultat pour une année spécifique.

# import the pandas library
import pandas as pd

ipl_data = {'Team': ['Riders', 'Riders', 'Devils', 'Devils', 'Kings',
         'kings', 'Kings', 'Kings', 'Riders', 'Royals', 'Royals', 'Riders'],
         'Rank': [1, 2, 2, 3, 3,4 ,1 ,1,2 , 4,1,2],
         'Year': [2014,2015,2014,2015,2014,2015,2016,2017,2016,2014,2015,2017],
         'Points':[876,789,863,673,741,812,756,788,694,701,804,690]}
df = pd.DataFrame(ipl_data)

grouped = df.groupby('Year')
print grouped.get_group(2014)

Ses output est comme suit -

Points  Rank     Team    Year
0     876     1   Riders    2014
2     863     2   Devils    2014
4     741     3   Kings     2014
9     701     4   Royals    2014

Concaténation des données

Pandas fournit diverses installations pour se combiner facilement Series, DataFrame, et Panelobjets. Dans l'exemple ci-dessous, leconcatLa fonction effectue des opérations de concaténation le long d'un axe. Créons différents objets et faisons la concaténation.

import pandas as pd
one = pd.DataFrame({
         'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'],
         'subject_id':['sub1','sub2','sub4','sub6','sub5'],
         'Marks_scored':[98,90,87,69,78]},
         index=[1,2,3,4,5])
two = pd.DataFrame({
         'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'],
         'subject_id':['sub2','sub4','sub3','sub6','sub5'],
         'Marks_scored':[89,80,79,97,88]},
         index=[1,2,3,4,5])
print pd.concat([one,two])

Ses output est comme suit -

Marks_scored     Name   subject_id
1             98     Alex         sub1
2             90      Amy         sub2
3             87    Allen         sub4
4             69    Alice         sub6
5             78   Ayoung         sub5
1             89    Billy         sub2
2             80    Brian         sub4
3             79     Bran         sub3
4             97    Bryce         sub6
5             88    Betty         sub5