Faire un boucle sur des sous parties d'un dataframe python

Résolu
nab3 -  
mamiemando Messages postés 33746 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
Je dispose d'un dataframe de 43200 données et je dois traiter seulement les données par bloc de 1008 lignes (le traitement consiste pour chaque bloc à faire le max moins le min pour 3 colonnes différentes et de récupérer la valeur) sauf que je vois pas du tout comment m'y prendre pour faire l'itération ...
Merci


Configuration: Windows / Firefox 87.0

2 réponses

jee pee Messages postés 41331 Date d'inscription   Statut Modérateur Dernière intervention   9 665
 
Bonjour,

Tu pourrais mettre en œuvre 2 boucles,
la premiere sur la liste globale avec un indice qui avance par pas de 1008 : 0,1008,2016 ...
la seconde qui qui traite 1008 enregistrements à partir de l'indice de la première boucle

avec un soucis à traiter : 43200 n'est pas un multiple de 1008

0
mamiemando Messages postés 33746 Date d'inscription   Statut Modérateur Dernière intervention   7 871
 
Bonjour,

Tu peux appliquer la méthode proposée dans cette discussion :

import numpy as np
import pandas as pd

# Create a dataframe of size 10
test = pd.Series(np.random.rand(10))
print(test)

# Process rows by batch of size 3
n = 3
for (g, df) in test.groupby(np.arange(len(test)) // n):
    print(df.shape)
    print(df)


Note qu'il n'est pas nécessaire de ce demander si la taille de la dataframe de départ est un multiple de la taille du batch.

Bonne chance
0