Faire un boucle sur des sous parties d'un dataframe python [Résolu]

Signaler
-
Messages postés
29703
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
8 avril 2021
-
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

Messages postés
31506
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
10 avril 2021
7 539
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

Messages postés
29703
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
8 avril 2021
7 066
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