-
Notifications
You must be signed in to change notification settings - Fork 45
/
_index.Rmd
85 lines (64 loc) · 3.44 KB
/
_index.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
---
title: "Partie 1: manipuler des données"
date: 2020-07-16
draft: false
weight: 20
#linktitle: manipulation
type: book
summary: |
Python s'est imposé comme une alternative très crédible à R dans
la manipulation de données. L'écosystème pandas a permis de démocratiser
l'utilisation des DataFrames dans Python et faciliter la manipulation
de données structurées grâce à la philosophie SQL. Python reste également
le langage le plus pratique pour récupérer et manipuler
des données moins structurées (webscraping, API). Python tend à devenir,
grâce au développement d'API vers d'autres langages (C, Spark, Postgres,
ElasticSearch...),
le langage *"one to rule them all"*
slug: manipulation
icon: database
icon_pack: fas
---
Le *dataframe* est l'outil central du logiciel `R` mais il s'agit d'un objet qui, en `Python`, ne s'est
imposé que récemment, notamment grâce au package `pandas`. Le concept de *dataframe* est relativement
intuitif et il existe un grand socle d'approches, héritières notamment de la logique SQL,
facilitant le maniement de ces données.
`pandas` est devenu incontournable dans l'écosystème `Python` pour la *data science*.
`pandas` est lui-même construit à partir du package `numpy`, qu'il est utile de comprendre
pour être à l'aise avec `pandas`. `numpy` est une librairie bas-niveau
pour stocker et manipuler des données.
`numpy` est au coeur de l'écosystème de la *data science* car la plupart des librairies, même celles
qui manient des objets destructurés,
utilisent des objets construits à partir de `numpy`.
L'approche `pandas` a été étendue aux objets géographiques avec `geopandas`.
Il est ainsi possible de manipuler des données géographiques comme s'il
s'agissait de données structurées classiques. Les données géographiques et
la représentation cartographique deviennent de plus en plus commun avec
la multiplication de données ouvertes localisées et de *big-data* géolocalisées.
Cependant, les données structurées, importées depuis des fichiers plats
ne représentent pas l'unique source de données. Les API et le *webscraping*
permettent de requêter ou d'extraire
des données de manière très flexible. Ces données, notamment
celles obtenues par *webscraping* nécessitent souvent un peu plus de travail
de nettoyage de données, notamment des chaînes de caractère.
## Structure de la partie
{{< list_children >}}
## Exercices
Les notebooks d'exercices sont listés [ici](listetp). Il est
possible de les consulter sur ce site ou d'utiliser l'un des
badges présents en début de chapitre, par exemple
ceux-ci pour ouvrir le TP `pandas`:
```{r, echo = FALSE, results = 'asis', include = TRUE, eval = TRUE}
print_badges("content/course/manipulation/02b_pandas_TP.Rmd", split = 4)
```
## Pour aller plus loin
Ce cours n'aborde pas encore les questions de volumétrie ou de vitesse de
calcul. `pandas` peut montrer ses limites dans ce domaine.
Il est ainsi intéressant de porter attention à:
* Le livre [Modern Pandas](https://tomaugspurger.github.io/modern-1-intro.html)
pour obtenir des éléments supplémentaires sur la question de la performance
avec `pandas`
* La question des
[objets sparse](https://chrisalbon.com/machine_learning/vectors_matrices_and_arrays/create_a_sparse_matrix/)
* Le package [`dask`](https://dask.org/) pour accélérer les calculs
* [`pySpark`](https://spark.apache.org/docs/latest/api/python/index.html) pour des données très volumineuses