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

Résolu
nab3 -  
mamiemando Messages postés 33228 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

  1. jee pee Messages postés 31923 Date d'inscription   Statut Modérateur Dernière intervention   9 992
     
    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
  2. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    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