Module 5 Python-Utilisation Pour La Data Science - Week4
Module 5 Python-Utilisation Pour La Data Science - Week4
Toute les méthodes dans cette section sont applicables à la fois pour une série et une dataframe
samples.points.describe()
Output:
count 129971.000000
mean 88.447138
...
75% 91.000000
max 100.000000
Name: points, Length: 8, dtype: float64
Par exemple, pour voir la moyenne des points attribués, nous pouvons utiliser la fonction mean ():
samples.points.mean()
Output:
88.44713820775404
Pour voir une liste de valeurs uniques, nous pouvons utiliser la fonction unique ():
samples.taster_name.unique()
Output:
samples.taster_name.value_counts()
Output:
Map est un terme, emprunté aux mathématiques, pour une fonction qui prend un ensemble de valeurs et
les «mappe» à un autre ensemble de valeurs. En science des données, nous avons souvent besoin de créer
de nouvelles représentations à partir de données existantes ou de transformer des données. Maps sont ce
qui gère ce travail, ce qui les rend extrêmement importantes pour faire votre travail!
Par exemple, supposons que nous voulions remanier les scores moyens des vins reçus à 0. Nous pouvons le
faire comme suit:
sample_points_mean = samples.points.mean()
samples.points.map(lambda p: p - sample_points_mean)
Output:
0 -1.447138
1 -1.447138
...
129969 1.552862
129970 1.552862
Name: points, Length: 129971, dtype: float64
La fonction que vous transmettez à map () doit attendre une valeur unique de la série et renvoyer une
version transformée de cette valeur. Map () renvoie une nouvelle série dans laquelle toutes les valeurs ont
été transformées par votre fonction.
apply () est la méthode équivalente si nous voulons transformer un DataFrame entier en appelant une
méthode personnalisée sur chaque ligne(avec axis='columns' sinon axis='index' pour transformer chaque
colonne).
sample_points_mean = samples.points.mean()
def remean_points(row):
row.points = row.points - review_points_mean
return row
samples.apply(remean_points, axis='columns')
“
Notez que map () et apply () renvoient respectivement de nouveaux Series et DataFrames
transformés. Ils ne modifient pas les données d'origine sur lesquelles ils sont appelés
Nous pouvons aussi proposer une solution comme la façon du traitement de matrice dans Numpy :
sample_points_mean = samples.points.mean()
samples.points - sample_points_mean
Output:
0 -1.447138
1 -1.447138
...
129969 1.552862
129970 1.552862
Name: points, Length: 129971, dtype: float64
Dans ce code, nous effectuons une opération entre plusieurs valeurs sur le côté gauche (tout dans la série)
et une seule valeur sur le côté droit (la valeur moyenne). Pandas regarde cette expression et comprend que
nous devons vouloir soustraire cette valeur moyenne de chaque valeur de l'ensemble de données.
NOUS POUVONS DONC EFFECTUER DES OPERATION ENTRE COLONNES, QUI SONT DES SERIES DE LA
MEME LONGUEUR
samples.price / samples.points
A B C D
0 foo one 1.346061 -1.577585
1 bar one 1.511763 0.396823
2 foo two 1.627081 -0.105381
3 bar three -0.990582 -0.532532
4 foo two -0.441652 1.453749
5 bar two 1.211526 1.208843
6 foo one 0.268520 -0.080952
7 foo three 0.024580 -0.264610
Sur un DataFrame, nous obtenons un objet GroupBy en appelant groupby (). Nous pourrions naturellement
regrouper par les colonnes A ou B, ou les deux. Et si on applique sum() aux résultants GroupBy :
df.groupby('A').sum()
C D
A
bar 1.732707 1.073134
foo 2.824590 -0.574779
df.groupby(['A', 'B']).sum()
C D
A B
bar one 1.511763 0.396823
three -0.990582 -0.532532
two 1.211526 1.208843
foo one 1.614581 -1.658537
three 0.024580 -0.264610
two 1.185429 1.348368
Les fonctions d'agrégation sont celles qui réduisent la dimension des objets renvoyés. Certaines fonctions
d'agrégation courantes sont présentées ci-dessous:
Function Description
4.3.2 sorting
output:
A B C D
2013-01-01 0.469112 -0.282863 -1.509059 -1.135632
2013-01-02 1.212112 -0.173215 0.119209 -1.044236
2013-01-03 -0.861849 -2.104569 -0.494929 1.071804
2013-01-04 0.721555 -0.706771 -1.039575 0.271860
2013-01-05 -0.424972 0.567020 0.276232 -1.087401
2013-01-06 -0.673690 0.113648 -1.478427 0.524988
Sorting by an axis:
Sorting by values:
A B C D
2013-01-03 -0.861849 -2.104569 -0.494929 1.071804
2013-01-04 0.721555 -0.706771 -1.039575 0.271860
2013-01-01 0.469112 -0.282863 -1.509059 -1.135632
2013-01-02 1.212112 -0.173215 0.119209 -1.044236
2013-01-06 -0.673690 0.113648 -1.478427 0.524988
2013-01-05 -0.424972 0.567020 0.276232 -1.087401
5 Merge
5.1 Concat
pandas fournit diverses fonctionnalités pour combiner facilement des objets Series et DataFrame avec
divers types de logique d'ensemble pour les index et la fonctionnalité d'algèbre relationnelle dans le cas
d'opérations de type jointure / fusion.
df = pd.DataFrame(np.random.randn(10, 4))
df
0 1 2 3
0 -0.548702 1.467327 -1.015962 -0.483075
1 1.637550 -1.217659 -0.291519 -1.745505
2 -0.263952 0.991460 -0.919069 0.266046
3 -0.709661 1.669052 1.037882 -1.705775
4 -0.919854 -0.042379 1.247642 -0.009920
5 0.290213 0.495767 0.362949 1.548106
6 -1.131345 -0.089329 0.337863 -0.945867
7 -0.932132 1.956030 0.017587 -0.016692
8 -0.575247 0.254161 -1.143704 0.215897
9 1.193555 -0.077118 -0.408530 -0.862495
0 1 2 3
0 -0.548702 1.467327 -1.015962 -0.483075
1 1.637550 -1.217659 -0.291519 -1.745505
2 -0.263952 0.991460 -0.919069 0.266046
3 -0.709661 1.669052 1.037882 -1.705775
4 -0.919854 -0.042379 1.247642 -0.009920
5 0.290213 0.495767 0.362949 1.548106
6 -1.131345 -0.089329 0.337863 -0.945867
7 -0.932132 1.956030 0.017587 -0.016692
8 -0.575247 0.254161 -1.143704 0.215897
9 1.193555 -0.077118 -0.408530 -0.862495
5.2 Join
left
key lval
0 foo 1
1 foo 2
right
key rval
0 foo 4
1 foo 5
6 Plotting
6.1 Basic plottin
ts = pd.Series(np.random.randn(1000),
index=pd.date_range('1/1/2000', periods=1000))
ts.plot()
df2.plot.bar()
df2.plot.bar(stacked=True)
6.3 Scatter plot
Le nuage de points nécessite des colonnes numériques pour les axes x et y. Celles-ci peuvent être spécifiées
par les mots clés «x» et «y».
df.plot.scatter(x='a', y='b');
df.to_csv('foo.csv')
pd.read_csv('foo.csv')
Unnamed: 0 A B C D
0 2000-01-01 0.350262 0.843315 1.798556 0.782234
1 2000-01-02 -0.586873 0.034907 1.923792 -0.562651
2 2000-01-03 -1.245477 -0.963406 2.269575 -1.612566
3 2000-01-04 -0.252830 -0.498066 3.176886 -1.275581
4 2000-01-05 -1.044057 0.118042 2.768571 0.386039
.. ... ... ... ... ...
995 2002-09-22 -48.017654 31.474551 69.146374 -47.541670
996 2002-09-23 -47.207912 32.627390 68.505254 -48.828331
997 2002-09-24 -48.907133 31.990402 67.310924 -49.391051
998 2002-09-25 -50.146062 33.716770 67.717434 -49.037577
999 2002-09-26 -49.724318 33.479952 68.108014 -48.822030
df.to_excel('foo.xlsx', sheet_name='Sheet1')
Unnamed: 0 A B C D
0 2000-01-01 0.350262 0.843315 1.798556 0.782234
1 2000-01-02 -0.586873 0.034907 1.923792 -0.562651
2 2000-01-03 -1.245477 -0.963406 2.269575 -1.612566
3 2000-01-04 -0.252830 -0.498066 3.176886 -1.275581
4 2000-01-05 -1.044057 0.118042 2.768571 0.386039
.. ... ... ... ... ...
995 2002-09-22 -48.017654 31.474551 69.146374 -47.541670
996 2002-09-23 -47.207912 32.627390 68.505254 -48.828331
997 2002-09-24 -48.907133 31.990402 67.310924 -49.391051
998 2002-09-25 -50.146062 33.716770 67.717434 -49.037577
999 2002-09-26 -49.724318 33.479952 68.108014 -48.822030