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

Résolu/Fermé
nab3 - 7 avril 2021 à 11:42
mamiemando Messages postés 33459 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 8 janvier 2025 - 7 avril 2021 à 12:21
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 40634 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 8 janvier 2025 9 479
Modifié le 7 avril 2021 à 12:09
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 33459 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 8 janvier 2025 7 813
Modifié le 7 avril 2021 à 12:21
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