Partage
  • Partager sur Facebook
  • Partager sur Twitter

Convertir SQL à Pandas

Erreur de conversion: NAN values

    16 septembre 2021 à 20:34:50

    import mysql.connector as conn
    import pandas as pd
    import pymysql
    
    mydb = conn.connect(host="localhost", user="aaaa",passwd="aaaa",database="world")
    
    SQL_df =pd.read_sql_query(
    """select Name, Continent, Region, SurfaceArea  from country;
    """,mydb
    )
    
    df =pd.DataFrame(SQL_df, columns=["Pays","Continent","Region","Superficie"])
    
    voila j'essai de créer une dataframe avec pandas en y important des fichiers depuis ma base de donnée en local 
    Mais on dirai que pandas ne reconnait pas certaines valeurs
    Un coup de main serai bienvenu😁😁
    • Partager sur Facebook
    • Partager sur Twitter
      16 septembre 2021 à 22:13:54

      Bonjour,

      Manque de Politesse

      Votre message ne comporte pas ou peu de formules de politesse (« Bonjour », « Merci », « Au revoir », etc.). Les règles du site exigent que chaque nouveau message comporte un minimum de politesse. Après tout, les gens qui répondent le font gratuitement, sur leur temps libre. Ils méritent bien un minimum de considération, n'est-ce pas ?

      Liens conseillés

      • Partager sur Facebook
      • Partager sur Twitter
        17 septembre 2021 à 7:44:37

        Bonjour.

        Je dirais que le type de données attendu par Pandas ne correspond à celui qui est fourni par la BDD d'où les "NaN" (Not a Number sauf erreur de ma part).

        • Partager sur Facebook
        • Partager sur Twitter

        PB68

          17 septembre 2021 à 10:30:19

          Bpnjour,

          effectivement les données que j'essaie d'importer ne sont pas des nombres.

          Mais certaines données texte sont bien importés comme la région ou le continent

          • Partager sur Facebook
          • Partager sur Twitter
            17 septembre 2021 à 11:19:13

            essaie de convertir Pays et Superficie en varchar dans ta requête 

            select CAST(Name AS VARCHAR), Continent, Region, CAST(SurfaceArea AS VARCHAR)  from country;

            Edit: arf, c'est plus simple en fait, ta requête te renvoie aussi les noms de colonnes, et ton paramètre colums de DataFrame permet, dans ce cas, de sélectionner les colonnes (lire la description du paramètre columns dans la doc ): ton select ne te renvoie pas de colonnes Pays et Superficie, d'où les NaN; si tu veux utiliser ces noms, il faut les indiquer dans ta requête

            select Name as Pays, Continent, Region, SurfaceArea as Superficie from country;

            ou créer ton Dataframe sans préciser les colonnes, et les renommer ensuite avec un df.rename(columns = {'Name': 'Pays', 'SurfaceArea': 'Superficie'}) 

            -
            Edité par umfred 17 septembre 2021 à 11:35:12

            • Partager sur Facebook
            • Partager sur Twitter
              17 septembre 2021 à 15:09:52

              Merci beaucoup je crois que c'est ce qui me manquait:D
              • Partager sur Facebook
              • Partager sur Twitter

              Convertir SQL à Pandas

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown