IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

enrichir dataframe à chaque iteration boucle for


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 206
    Par défaut enrichir dataframe à chaque iteration boucle for
    Bonjour,
    petit problème qui me prend le chou depuis un petit moment:
    je fais une boucle for. A le 1ere itération, un dataframe pandas est créé (via une procédure de requete sur bigquery) avec un certain nombre de lignes. J'aimerai compléter ce dataframe à la 2ème itération, à la 3ème, ...
    J'ai essayé ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    query = """
    SELECT count(*) FROM myTable WHERE EXTRACT(year FROM day)=@annee AND customerId>0
    """
    for annee in range(2017,2020):
        query_params = [bigquery.ScalarQueryParameter("annee", "INT64", annee)]
        job_config = bigquery.QueryJobConfig()
        job_config.query_parameters = query_params
        query_job = client.query(query,location="EU", job_config=job_config)
        df_S1 = [df_S1+query_job.to_dataframe()]
    Ca ne marche pas.
    Merci pour votre aide

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 742
    Par défaut
    Salut,

    Citation Envoyé par cpalperou Voir le message
    J'ai essayé ça:
    ...
    Ca ne marche pas.
    Lorsqu'on programme, on n'essaie pas: on commence par se documenter sur comment concaténer/fusionner des dataframes.
    Puis on vérifie qu'on a bien compris sur un petit exemple proche du cas d'utilisation qu'on souhaite.

    Si çà ne fonctionne pas, on cherche des exemples (sur Internet)... et si on est toujours dans le brouillard, on a un exemple de code à montrer qui permet de reproduire le problème constaté avec des objets dont on sait d'où ils sortent (vos dataframes, ils sortent d'où? Ce ne sont pas des objets de base du langage) et qui montrera que vous avez cherché un peu.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 206
    Par défaut
    Merci pour cette belle leçon Mr Wiztricks.
    Pour vous citer : " lorsqu'on programme, on n'essaie pas: [...] Puis on essaie de vérifier ...".
    OK !!!
    Mes dataframes pandas sortent, comme précisé dans mon premier post, d'une requête sql faite via bigquery. J'avais joint un code dans mon premier post montrant que j'avais essayé, n'en déplaise, et donc "cherché un peu".
    Merci pour votre aide Mr Wiztricks

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 742
    Par défaut
    Citation Envoyé par cpalperou Voir le message
    Merci pour cette belle leçon Mr Wiztricks.
    Pour vous citer : " lorsqu'on programme, on n'essaie pas: [...] Puis on essaie de vérifier ...".
    OK !!!
    C'est corrigé

    Mes dataframes pandas sortent, comme précisé dans mon premier post, d'une requête sql faite via bigquery. J'avais joint un code dans mon premier post montrant que j'avais essayé, n'en déplaise, et donc "cherché un peu".
    Si ce sont des dataframes pandas, une recherche sur Internet avec pandas dataframe concatenate, vous aurait donné des pistes. Et si ce n'est pas le cas, le code que vous donnez est insuffisant pour reproduire quoi que ce soit.


    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 206
    Par défaut
    C'était tout à fait suffisant et j'ai trouvé ma réponse:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    query = """
    SELECT count(*) FROM myTable WHERE EXTRACT(year FROM day)=@annee AND customerId>0
    """
    df_S1 = pd.DataFrame()
    for annee in range(2017,2020):
        query_params = [bigquery.ScalarQueryParameter("annee", "INT64", annee)]
        job_config = bigquery.QueryJobConfig()
        job_config.query_parameters = query_params
        query_job = client.query(query,location="EU", job_config=job_config)
        df_S1 = pd.concat([df_S1,query_job.to_dataframe()])
        df_S1.reset_index(drop=True,inplace=True)
    Merci pour l'efficacité de votre aide qui m'a incité à essayer par moi même puis à réussir. Donc, à l'avenir, je n'hésiterai plus, j'essaierai!
    Bonne journée

Discussions similaires

  1. Passer directement a l'iteration suivante dans une boucle for
    Par sundjata dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 26/07/2023, 12h40
  2. Boucle for Vs While sur un Iterator
    Par thierryler dans le forum Langage
    Réponses: 6
    Dernier message: 27/10/2010, 13h30
  3. parcourt d'un vector avec iterator et boucle for
    Par Benoit_T dans le forum Débuter
    Réponses: 8
    Dernier message: 27/03/2009, 18h42
  4. boucle for avec exception dans l iteration
    Par norachaouia dans le forum Langage
    Réponses: 2
    Dernier message: 19/07/2007, 12h45
  5. Réponses: 1
    Dernier message: 22/04/2007, 16h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo