2A.data - Pandas et itérateurs

Links: notebook, html, PDF, python, slides, GitHub

pandas a tendance a prendre beaucoup d’espace mémoire pour charger les données, environ trois fois plus que sa taille sur disque. Quand la mémoire n’est pas assez grande, que peut-on faire ?

from jyquickhelper import add_notebook_menu
add_notebook_menu()
from sklearn.datasets import load_iris
data = load_iris()
import pandas
df = pandas.DataFrame(data.data)
df.column = "X1 X2 X3 X4".split()
df["target"] = data.target
df.head()
0 1 2 3 target
0 5.1 3.5 1.4 0.2 0
1 4.9 3.0 1.4 0.2 0
2 4.7 3.2 1.3 0.2 0
3 4.6 3.1 1.5 0.2 0
4 5.0 3.6 1.4 0.2 0
df.to_csv("iris.txt", sep="\t", index=False)

Exercice 1 : itérer sur un grand fichier

A quoi sert le paramètre iterator de la fonction read_csv ? Comment s’en servir pour lire un grand fichier ?

Exercice 2 : split train test

Utiliser les fonctions read_csv et train_test_split pour répartir un gros jeu de données en deux jeux train, test.

Exercice 3 : stratify ?

Que dire à propos de la fonction précédente du paramètre stratify de la fonction train_test_split ?

Exercice 4 : quelques idées pour un group by ?

Toujours sur un gros fichier…