Partage
  • Partager sur Facebook
  • Partager sur Twitter

[COURS] Nettoyez et décrivez votre jeu de données

    4 juin 2019 à 11:41:29

    Bonjour à tous.

    Je suis au début du cours  ' Téléchargez et nettoyer les données'. Je n'arrive pas à avoir le tableau quand j'écris print(data) comme indiqué.

    J'ai bien installé et vérifier que python fonctionnait via une formule mathématique simple comme suggéré. J'ai bien importé dans un dossier sur Jupiter le code proprocessing ainsi que le fichier operations.csv issu du dossier de données de base donnée sur le site.

    Des idées ? merci.

    • Partager sur Facebook
    • Partager sur Twitter
      24 juin 2019 à 8:51:11

      Bonjour,

      c'est plutôt un retour qu'une question

      dans la partie

      Représentez la distribution empirique d'une variable,

      j'ai une erreur dans la mise en forme graphique des données:

      import matplotlib.pyplot as plt
      import pandas as pd
      from collections import Counter
      
      
      
      data = pd.read_csv("operations_enrichies.csv", parse_dates=[1,2], sep=",", decimal=",", dayfirst=True)
      #print (data)
      print ("Début des mise ne forme")
      
      # VARIABLE QUALITATIVE
      # Diagramme en secteurs
      data["categ"].value_counts(normalize=True).plot(kind='pie')
      print ("CHargement des catégories de dépenses")
      # Cette ligne assure que le pie chart est un cercle plutôt qu'une éllipse
      plt.axis('equal') 
      #plt.show() # Affiche le graphique
      
      # Diagramme en tuyaux d'orgues
      data["categ"].value_counts(normalize=True).plot(kind='bar')
      #plt.show()
      
      # VARIABLE QUANTITATIVE
      # Diagramme en bâtons
      data["quart_mois"].value_counts(normalize=True).plot(kind='bar',width=0.1)
      #plt.show()
      
      # Histogramme
      data["montant"].hist(density=True)
      #plt.show()
      # Histogramme plus beau
      data[data.montant.abs() < 100]["montant"].hist(density=True,bins=20)
      plt.show()


      Avec l'erreur :

       TypeError: bad operand type for abs(): 'str'

      En y regardant de plus près , l'erreur semble venir de la dernière partie:

      # Histogramme plus beau
      data[data.montant.abs() < 100]["montant"].hist(density=True,bins=20)
      plt.show()

      Me disant qu'on ne peut pas faire la valeur absolue d'un string (normal), j'essaye de convertir la donnée préalablement en 'int'.

      # Histogramme plus beau
      data[int(data.montant).abs() < 100]["montant"].hist(density=True,bins=20)
      plt.show()

      Mais j'ai une erreur :

      TypeError: cannot convert the series to <class 'int'>

      J'y comprend que la conversion d'un objet en 'int' n'est pas possible parce qu'il s'agit d'un objet,  j'essaye donc de convertir la partie de l'objetpar astype(int) que trouvé sur un site

      # Histogramme plus beau
      data[data.montant.astype(int).abs() < 100]["montant"].hist(density=True,bins=20)
      plt.show()

      Cette fois j'ai une erreur plus facile à comprendre

      ValueError: invalid literal for int() with base 10: '7.5'

      J'y comprend que ce n'est pas un 'int' mais un 'float' puisqu'il y a une virgule dans le nombre

      # Histogramme plus beau
      data[data.montant.astype(float).abs() < 100]["montant"].hist(density=True,bins=20)
      plt.show()

      BINGO CA MARCHE !!

      A toute fins utiles, bon codage à tous

      • Partager sur Facebook
      • Partager sur Twitter
        25 juin 2019 à 17:42:21

        Rebonjour,

        pas beaucoup d'activité sur ce forum mais comme il s'agit toujours de ce cours, à moins que je ne me trompe, je rajoute un message.

        for cat in data["categ"].unique():
            subset = data[data.categ == cat]
            print("-"*20)
            print(cat)
            print("moy:\n",subset['montant'].mean())
            print("med:\n",subset['montant'].median())
            print("mod:\n",subset['montant'].mode())
            print("var:\n",subset['montant'].var(ddof=0))
            print("ect:\n",subset['montant'].std(ddof=0))
            subset["montant"].hist()
            plt.show()
            subset.boxplot(column="montant", vert=False)
            plt.show()

        avec cela j'ai une erreur de type :

        KeyError: "None of [Index(['montant'], dtype='object')] are in the [columns]"

        J'ai pu résoudre ce problème de la sorte :

        plt.boxplot(subset['montant'].astype(float), vert=False)

        Voilà si ça peut servir


        • Partager sur Facebook
        • Partager sur Twitter
          29 juillet 2019 à 13:58:34

          Bonjour cher tous.

          J'ai une inquiètude sur les données manquantes. Au faite, dans le cours, le prof s'est appuyer sur un jeu de données toute petite c'est a dire qui ne contient pas assez d'individu et donc il est facile ici de detecter nos variables qui contiennent des données manquantes.

          J'ai decouvert que pour savoir les colonnes qui ont des données manquantes, il faut faire "data.isnull().sum()". data represente la variable dont nous avons stocker notre dataset.

          Maintenant j'aimerais savoir comment detecter les lignes qui contiennent des données manquantes. J'ai essayé de creer un sous-echantillon qui contiendrait les données qui manquent de valeurs mais sans succes.

          Merci de bien vouloir m'eclaircir ce point.

          • Partager sur Facebook
          • Partager sur Twitter
            30 juillet 2019 à 23:17:29

            Bonjour,

            Je rencontre cette erreur quand j'essaye de mettre mes données au bon format.

            ---------------------------------------------------------------------------
            TypeError                                 Traceback (most recent call last)
            <ipython-input-59-d7f006edafff> in <module>
                 64 last_val = balance[-1]
                 65 balance = [0] + balance[:-1]
            ---> 66 balance = balance - last_val + LAST_BALANCE
                 67 data["solde_avt_ope"] = balance
                 68 
            
            TypeError: unsupported operand type(s) for -: 'list' and 'str

            Je mouline sans trouver de solution

            Merci de  votre aide

            • Partager sur Facebook
            • Partager sur Twitter
              1 août 2019 à 11:26:54

              Bonjour,

              S'il vous plait comment installer Anaconda sous Windows 10? J'y arrive pas depuis.

              Merci

              • Partager sur Facebook
              • Partager sur Twitter
                12 août 2019 à 23:48:52

                Wouhou y'a quelqu'un ?


                julien1872 a écrit:

                Bonjour,

                Je rencontre cette erreur quand j'essaye de mettre mes données au bon format.

                ---------------------------------------------------------------------------
                TypeError                                 Traceback (most recent call last)
                <ipython-input-59-d7f006edafff> in <module>
                     64 last_val = balance[-1]
                     65 balance = [0] + balance[:-1]
                ---> 66 balance = balance - last_val + LAST_BALANCE
                     67 data["solde_avt_ope"] = balance
                     68 
                
                TypeError: unsupported operand type(s) for -: 'list' and 'str

                Je mouline sans trouver de solution

                Merci de  votre aide



                • Partager sur Facebook
                • Partager sur Twitter

                [COURS] Nettoyez et décrivez votre jeu de données

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                • Editeur
                • Markdown