Initial commit
This commit is contained in:
134
documentation/new-01.1-pandas-concepts.md
Normal file
134
documentation/new-01.1-pandas-concepts.md
Normal file
@ -0,0 +1,134 @@
|
||||
---
|
||||
title: Pandas
|
||||
author: Steve Kossouho
|
||||
---
|
||||
|
||||
# Concepts de base de Pandas
|
||||
|
||||
----
|
||||
|
||||
## La bibliothèque Pandas
|
||||
|
||||
Il existe d'assez nombreuses bibliothèques Python destinées à faciliter le traitement de données.
|
||||
Bien que la bascule prenne du temps, de plus en plus de développeurs et d'entreprises optent pour
|
||||
inclure ces bibliothèques dans leur flux de travail, bien souvent en remplacement de solutions
|
||||
payantes telles que **SAS**, **Stata** ou **MatLab**.
|
||||
|
||||
Parmi ces bibliothèques, on compte notamment `pyspark` (`Apache Spark`), `pandas`, `polars`
|
||||
ou encore `dask`.
|
||||
|
||||
`pandas`, la plus connue d'entre elles, est une bibliothèque assez intuitive, destinée à des
|
||||
développeurs, et pensée pour des développeurs qui sont déjà habitués à traiter de la donnée
|
||||
dans des logiciels propriétaires.
|
||||
|
||||
{width=96px}
|
||||
|
||||
----
|
||||
|
||||
### Installer `pandas`
|
||||
|
||||
Pour bénéficier de la meilleure expérience avec Pandas, vous pouvez l'installer avec l'outil `pip` :
|
||||
|
||||
```bash {.numberLines}
|
||||
# Pandas-stubs offre l'autocomplétion sur des éléments dynamiques
|
||||
# Openpyxl permet à pandas de charger des documents Excel 2003- et 2007+
|
||||
pip install pandas pandas-stubs openpyxl
|
||||
```
|
||||
|
||||
----
|
||||
|
||||
## Types de base de Pandas
|
||||
|
||||
Toute l'utilisation de la bibliothèque `Pandas` tourne autour de 3 classes principales permettant de manipuler des données en 1D ou en 2D.
|
||||
|
||||
- `Series` : Séries de données (1 dimension)
|
||||
- `DataFrame` : Tableaux de données (2 dimensions)
|
||||
- `Index` : Séries de données identifiant des colonnes ou lignes
|
||||
|
||||
[Guide utilisateur Pandas]
|
||||
|
||||
----
|
||||
|
||||
### Les objets `Series`
|
||||
|
||||
La classe `Series` est la plus simple à manipuler. Elle stocke et permet de gérer les données d'un tableau à une dimension.
|
||||
|
||||
```python {.numberLines}
|
||||
import pandas as pd
|
||||
|
||||
series = pd.Series([0, 1, 1, 2, 3, 5, 8, 13, 21])
|
||||
```
|
||||
|
||||
[pandas.Series]
|
||||
|
||||
----
|
||||
|
||||
### Les objets `DataFrame`
|
||||
|
||||
La classe `DataFrame` permet de stocker et de manipuler des données dans un tableau à deux dimensions. Cette classe est séparée de la classe `Series`, au moins parce que les objets `DataFrame` possèdent deux index, au lieu d'un seul pour une `Series` (nous allons le découvrir plus tard).
|
||||
|
||||
```python {.numberLines}
|
||||
import pandas as pd
|
||||
|
||||
dataframe = pd.DataFrame(data=[["Paul", 1974], ["Quentin", 1991], ["Aude", 1987]])
|
||||
```
|
||||
|
||||
[pandas.DataFrame]
|
||||
|
||||
----
|
||||
|
||||
### Les objets `Index`
|
||||
|
||||
La classe `Index` est similaire à un objet de la classe `Series`. C'est une séquence de valeurs, qui est utilisée par Pandas pour étiqueter des colonnes d'un `DataFrame`, ou des enregistrements d'une `Series` ou d'un `DataFrame`. Tout objet `Series` ou `DataFrame` possède toujours un index par axe.
|
||||
|
||||
```python {.numberLines}
|
||||
import pandas as pd
|
||||
|
||||
index = pd.Index(data=[1, 2, 3])
|
||||
```
|
||||
|
||||
[pandas.Index]
|
||||
|
||||
----
|
||||
|
||||
### Alternatif : Les objets `MultiIndex`
|
||||
|
||||
Un objet `MultiIndex` est un `Index` dont les étiquettes sont composées sur plusieurs niveaux. Cela permet d'extraire des lignes ou des colonnes hiérarchiquement.
|
||||
|
||||
```python {.numberLines}
|
||||
import pandas as pd
|
||||
|
||||
index = pd.MultiIndex.from_tuples([("FR", "Paris"), ("FR", "Pau"), ("ES", "Madrid"), ("ES", "Sevilla")])
|
||||
series = pd.Series(data=[1, 2, 3, 4], index=index)
|
||||
print(series.loc["FR"])
|
||||
```
|
||||
|
||||
[Indexation avancée]
|
||||
|
||||
----
|
||||
|
||||
### Alternatif : Les objets `DatetimeIndex`
|
||||
|
||||
Un objet `DatetimeIndex` est un `Index` contenant des objets de type date, et dont le contenu est générable de façon déterministe. Ils contiennent généralement des dates à intervalles réguliers, ou des dates suivant des règles simples (ex. tous les 4 mercredi, toutes les fins de mois etc.)
|
||||
|
||||
[Indexation avancée]
|
||||
|
||||
|
||||
----
|
||||
|
||||
### Structure d'une `Series`
|
||||
|
||||

|
||||
|
||||
----
|
||||
|
||||
### Structure d'un `DataFrame`
|
||||
|
||||

|
||||
|
||||
[Guide utilisateur Pandas]: https://pandas.pydata.org/docs/user_guide/index.html#user-guide Pandas user guide
|
||||
[pandas.Series]: https://pandas.pydata.org/docs/reference/series.html
|
||||
[pandas.DataFrame]: https://pandas.pydata.org/docs/reference/frame.html
|
||||
[pandas.Index]: https://pandas.pydata.org/docs/reference/indexing.html
|
||||
[pandas.MultiIndex]: https://pandas.pydata.org/docs/user_guide/advanced.html
|
||||
[Indexation avancée]: https://pandas.pydata.org/docs/user_guide/advanced.html
|
Reference in New Issue
Block a user