Partage

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

Team OC 31 octobre 2017 à 11:58:03

Bonjour ! Voilà le fil de discussion dédié au cours Nettoyez et décrivez votre jeu de données.

N'hésitez pas à poser vos questions ici et à échanger les uns avec les autres ! Je ferai de mon mieux pour vous répondre régulièrement.

Si vous avez une question concernant le fonctionnement du cours (accès aux exercices, envoi des exercices, inscription au cours…), contactez directement OpenClassrooms à hello@openclassrooms.com

Bon courage et à bientôt !

Vous êtes demandeur d'emploi ?
Sans diplôme post-bac ?

Devenez Développeur web junior

Je postule
Formation
en ligne
Financée
à 100%
20 février 2018 à 11:37:41

Bonjour,

Une question sur la partie "téléchargez les données" :

Je suis dans le cas où ma date est au format 01/02/2020 avec le jour en premier, mes séparateurs sont des ";" et decimal ",". J'utilise donc la troisième ligne de commande proposée :

data = pd.read_csv("operations.csv", parse_dates=[1,2], sep= ';', decimal= ',', dayfirst=True)

Seulement lors de la création des variables "annee", "mois" à la toute fin du fichier, j'ai l'erreur suivante :

AttributeError: 'str' object has no attribute 'year'

Lorsque j'affiche ma colonne "date_operation" elle est toujours sous la forme 01/02/2020.

Quelqu'un aurait une idée d'où pourrait provenir cette erreur ?

Merci pour votre aide,

Anita.

20 février 2018 à 14:27:20

Bonjour Nicolas,

il y a quelque chose qui ne fonctionne pas dans le script 

https://openclassrooms.com/courses/nettoyez-et-decrivez-votre-jeu-de-donnees/telechargez-les-donnees#/id/r-4726749

  (Pdb) next
TypeError: unsupported operand type(s) for -: 'list' and 'str'
> /home/jovyan/Parcours_OC_DataAnalyst/Décrivez et nettoyez votre jeu de données/operations_enrichies_2.py(30)<module>()
-> balance = balance - last_val + LAST_BALANCE
(Pdb) type(balance)
<class 'list'>
(Pdb) type(last_val)
<class 'str'>
(Pdb) type(LAST_BALANCE)
<class 'int'>

Je veux bien tenter de débogguer mais peux-tu expliquer l'opération à effectuer stp ?

Merci d'avance,

Cdlt,

-
Edité par tdupouy 20 février 2018 à 14:28:37

Team OC 20 février 2018 à 17:49:03

AnitaDh a écrit:

Bonjour,

Une question sur la partie "téléchargez les données" :

Je suis dans le cas où ma date est au format 01/02/2020 avec le jour en premier, mes séparateurs sont des ";" et decimal ",". J'utilise donc la troisième ligne de commande proposée :

data = pd.read_csv("operations.csv", parse_dates=[1,2], sep= ';', decimal= ',', dayfirst=True)

Seulement lors de la création des variables "annee", "mois" à la toute fin du fichier, j'ai l'erreur suivante :

AttributeError: 'str' object has no attribute 'year'

Lorsque j'affiche ma colonne "date_operation" elle est toujours sous la forme 01/02/2020.

Quelqu'un aurait une idée d'où pourrait provenir cette erreur ?

Merci pour votre aide,

Anita.


Bonjour Anita, votre colonne de date se trouve t'elle en 2e ou 3e position dans votre csv? Si ce n'est pas le cas, il faudrait vérifer l'argument parse_dates=[1,2]
24 février 2018 à 16:27:21

Question concernant la validation des exercices:

Bonjour à tous, mon exercice est terminé et envoyé.

Je suis désormais dans la partie correction. Hors on ne me propose que 2 exercices à corriger sur les 3 obligatoires. Combien de temps faut-il attendre en moyenne pour arriver au 3 corrections nécessaires pour pouvoir passer à l'étape 2 (recevoir une note)?

Deuxième question : Que ce passe-t-il si personne ne corrige mon exercice? Nous n'aurons jamais de note?

Arnaud

28 février 2018 à 10:14:26

Bonjour,

Dans votre chapitre 'Appréhendez les mesures de forme', au niveau du paragraphe 'Kurtosis empirique', vous présentez les règles d'aplatissement de la distribution en comparaison avec le nombre 3.

Or dans les exemples graphique du cours, le kurtosis est semble plutôt comparé à 0 pour en déduire l'aplatissement.

Pourriez-vous clarifier ce point ?

Eric.

Team OC 28 février 2018 à 12:05:20

ArnaudPeseux1 a écrit:

Question concernant la validation des exercices:


Bonjour Arnaud. C'est normal, car le cours vient d'être publié. Dès qu'il y aura un nombre suffisant d'utilisateurs, les corrections seront disponibles plus rapidement.

Félicitations pour la réalisation de cette activité !

7 mars 2018 à 3:06:26

Bonsoir je n'arrive pas a telecharger les données pour faire le TP en même temps que vous. Merci
A la recherche de la connaissance
30 mars 2018 à 21:10:55

Bonsoir,

Par rapport à la version épurée d'Anaconda (https://conda.io/miniconda.html), en effet, cela ne suffit pas pour le cours: Jupyter n'est pas disponible (bien sûr on peut s'en passer) mais surtout la librairie Panda n'est pas non plus incluse.

Donc pas le choix de télécharger les 500Moctets de la distribution Anaconda :)

A+

Mickael

Team OC 31 mars 2018 à 11:44:40

Merci Mickael d'avoir été notre cobaye ;) On va donc supprimer ce petit paragraphe !
4 avril 2018 à 11:40:36

Bonjour,

Dans la partie "Représentez la distribution empirique d'une variable", sous-partie "du côté du code", l'argument 'normed' est déprécié apparemment (message d'erreur dans Jupyter). Il faut le remplacer par 'density' pour que cela fonctionne correctement.

Versions :

Matplotlib: 2.2.2

Python: 3.6.5

Nouveau code :

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


16 avril 2018 à 17:24:20

Bonjour, 

avec le data suivant:

data=pd.read_csv('CA20180415_1255.CSV',parse_dates=[0],sep=';',dayfirst=True,decimal= ',',encoding='latin-1')

j'ai l'erreur suivante:

ParserError Traceback (most recent call last...

ParserError: Error tokenizing data. C error: Expected 2 fields in line 11, saw 5

Dans mon fichier, en ligne 11, j'ai les intitulés des colonnes:

Date;Libellé;Débit Euros;Crédit Euros;

j'ai cherché sur le net mais je ne trouve pas de commandes ou d'instructions pour gérer cela.

merci.

-
Edité par Pasc.alZ 16 avril 2018 à 17:25:26

Team OC 16 avril 2018 à 18:52:35

Bonjour Pascal,

Normalement, vos intitulés de colonnes se trouvent en première ligne, je pense donc que les lignes 1-10 sont probablement inutiles. Essayez de les supprimer et de réenregistrer votre fichier.

Bonne chance !

16 avril 2018 à 22:23:02

tout simplement !!

Super, merci!

4 mai 2018 à 16:46:31

Salut , impossible de télécharger le fichier zip.

14 mai 2018 à 17:26:10

Bonjour,

Lorsque je lance mon script, ma console m'affiche l'erreur suivante:

Traceback (most recent call last):
  File "alacom.py", line 113, in <module>
    balance = balance - last_val + LAST_BALANCE
ValueError: operands could not be broadcast together with shapes (211,) (2,)

Et je n'arrive pas à trouver l'origine de cette erreur.

Merci.

Begal1
16 mai 2018 à 14:47:28

Bonjour,

J'aurais une remarque concernant le chapitre "Appréhendez les mesures de forme".

Je pense que la partie sur le kurtosis gagnerait à être un peu plus détaillée. La formule qui est donnée est celle de la version non normalisée, cependant la notation utilisée (le gamma) est celle de la version normalisée (on utilise le Beta pour la version non normalisée). Pour obtenir la version normalisée, il faut soustraire 3 à la formule donnée. Cela explique la différence observée entre les graphiques et la valeur de 3 pour une distribution normale. Cette valeur de 3 est exacte pour la version non normalisée, mais pour la version normalisée c'est 0 (pour une valeur de 3 on obtient une distribution suivant la loi de Laplace). Au vu des graphiques, il semble que dans python ça soit la version normalisée qui est renvoyée (loi normale pour une valeur de 0)

-
Edité par Pierre-EloiRagetly 16 mai 2018 à 17:17:31

Team OC 23 mai 2018 à 14:14:36

begal1 a écrit:

Bonjour,

Lorsque je lance mon script, ma console m'affiche l'erreur suivante:

Traceback (most recent call last):
  File "alacom.py", line 113, in <module>
    balance = balance - last_val + LAST_BALANCE
ValueError: operands could not be broadcast together with shapes (211,) (2,)

Et je n'arrive pas à trouver l'origine de cette erreur.

Merci.

Bonjour Begal1, pouvez-vous vérifier que votre CSV s'est correctement importé dans le dataframe ? Il faudrait vérifier qu'il y a bien une valeur par cellule. Pouvez-vous m'envoyer en message personnel le réultat de l'instruction suivante svp :

print(data)

Merci !

Nicolas

14 juin 2018 à 0:42:32

Bonjour Nicolas,

Concernant l'activité proposée sur les analyses bivariées, question 4, colonne "petal_wdth" du tableau de  l'énoncé de l'activité. 

Les ordres de grandeurs ne semblent pas correspondre au graphique juste au dessus, où l'on note une plage de variation entre 0 et 3.  Est-ce norma ? 

Cordialement 

Team OC 22 juin 2018 à 13:54:21

catherine78 a écrit:

Bonjour Nicolas,

Concernant l'activité proposée sur les analyses bivariées, question 4, colonne "petal_wdth" du tableau de  l'énoncé de l'activité. 

Les ordres de grandeurs ne semblent pas correspondre au graphique juste au dessus, où l'on note une plage de variation entre 0 et 3.  Est-ce norma ? 

Cordialement 


Bonjour Catherine,

Bravo pour avoir remarqué cela !

J'ai corrigé le tableau, les valeurs de la variable patal_width étaient effectivement erronées,

N'hésitez pas si vous remarquez d'autres problèmes.

Nicolas

Team OC 12 juillet 2018 à 15:32:39

Bonjour Pierre,

Merci pour la remarque, c'est maintenant corrigé ;)

Pouvez-vous regarder si c'est mieux ?

Merci

Nicolas

Pierre-EloiRagetly a écrit:

Bonjour,

J'aurais une remarque concernant le chapitre "Appréhendez les mesures de forme".

Je pense que la partie sur le kurtosis gagnerait à être un peu plus détaillée. La formule qui est donnée est celle de la version non normalisée, cependant la notation utilisée (le gamma) est celle de la version normalisée (on utilise le Beta pour la version non normalisée). Pour obtenir la version normalisée, il faut soustraire 3 à la formule donnée. Cela explique la différence observée entre les graphiques et la valeur de 3 pour une distribution normale. Cette valeur de 3 est exacte pour la version non normalisée, mais pour la version normalisée c'est 0 (pour une valeur de 3 on obtient une distribution suivant la loi de Laplace). Au vu des graphiques, il semble que dans python ça soit la version normalisée qui est renvoyée (loi normale pour une valeur de 0)

-
Edité par Pierre-EloiRagetly 16 mai 2018 à 17:17:31



13 juillet 2018 à 16:17:20

Hello Nicolas,

Deux petites questions concernant cette page : https://openclassrooms.com/fr/courses/4525266-decrivez-et-nettoyez-votre-jeu-de-donnees/4725622-analysez-la-correlation-entre-deux-variables-quantitatives

Pour générer le code qui plot toutes les boîtes : tu réécris from scratch à chaque situation, ou bien tu gardes la méthode dans un coin ? Il manque plus grand chose d'ailleurs au code pour devenir une petite fonction à laquelle on passe deux séries + une taille de classe pour qu'elle génère tout ça :) Le fait de ploter toutes les boîtes à moustache d'une variable en fonction d'une taille de classe arbitraire d'une autre variable, cela porte ou non ou pas ?

Merci ! :)

[Edit]

Petite remarque ici : https://openclassrooms.com/fr/courses/4525266-decrivez-et-nettoyez-votre-jeu-de-donnees/4774671-analysez-deux-variables-quantitatives-par-regression-lineaire

Pour la ligne où on veut entraîner le modèle grâce au MCO :

result = sm.OLS(Y, X).fit() # OLS = Ordinary Least Square (Moindres Carrés Ordinaire)

Il n'est pas précisé qu'il faille importer l'API de statsmodels :

import statsmodels.api as sm

[Encore un edit]

Ici : https://openclassrooms.com/fr/courses/4525266-decrivez-et-nettoyez-votre-jeu-de-donnees/4774896-analysez-une-variable-quantitative-et-une-qualitative-par-anova

Quand tu dis :

Si η2Y/X=0ηY/X2=0 , cela signifie que les moyennes par classes sont toutes égales. Il n’y a donc pas a priori de relation entre les variables Y et X. Au contraire, si η2Y/X=1ηY/X2=1 , cela signifie que les moyennes par classes sont très différentes, chacune des classes étant constituée de valeurs identiques : il existe donc a priori une relation entre les variables Y et X.

Je me trompe peut-être mais, est-ce qu'une interprétation de la valeur 1 pour le rapport de corrélation ne serait pas de dire que : si le rapport de corrélation vaut 1, alors cela signifie que la variation interclasse vaut la variation totale. Ce qui signifie que la variation interclasse se calque parfaitement sur les variations de la variable et donc que notre modèle / répartition des classes modélise parfaitement les fluctuations ?

-
Edité par nicodesh 13 juillet 2018 à 18:32:28

16 juillet 2018 à 13:13:14

ma question n'a plus lieu d'être. Bonne continuation.

-
Edité par NuchCh 18 juillet 2018 à 18:51:06

17 juillet 2018 à 10:29:27

Nicolas Rangeon a écrit:

Bonjour Pierre,

Merci pour la remarque, c'est maintenant corrigé ;)

Pouvez-vous regarder si c'est mieux ?

Merci

Nicolas

Pierre-EloiRagetly a écrit:

Bonjour,

J'aurais une remarque concernant le chapitre "Appréhendez les mesures de forme".

Je pense que la partie sur le kurtosis gagnerait à être un peu plus détaillée. La formule qui est donnée est celle de la version non normalisée, cependant la notation utilisée (le gamma) est celle de la version normalisée (on utilise le Beta pour la version non normalisée). Pour obtenir la version normalisée, il faut soustraire 3 à la formule donnée. Cela explique la différence observée entre les graphiques et la valeur de 3 pour une distribution normale. Cette valeur de 3 est exacte pour la version non normalisée, mais pour la version normalisée c'est 0 (pour une valeur de 3 on obtient une distribution suivant la loi de Laplace). Au vu des graphiques, il semble que dans python ça soit la version normalisée qui est renvoyée (loi normale pour une valeur de 0)

-
Edité par Pierre-EloiRagetly 16 mai 2018 à 17:17:31



Oui c'est beaucoup mieux :)

21 août 2018 à 12:49:20

Salut,

j'en suis à la moitié du cours. Ca va très vite, et pour l'instant ça ressemble beaucoup à une liste de trucs à savoir, présentés les uns après les autres. Je sais déjà ce qu'est une moyenne, une variance, un écart type, le mode, etc... Donc pas de problème. Mais le néophyte doit vraisemblablement oublier la formule précédente sitôt qu'une nouvelle est présentée.

Quelques exercices entre les présentations de concepts pour cimenter le matériel ne feraient pas de mal, AMHA.

21 août 2018 à 20:58:49

Bonjour,

Je suis au tout début du cours, et ça m'a l'air très intéressant. Cependant, je trouve tout plein de petites coquilles, fautes d'orthographes ou ce genre de trucs tu vois. Je me demande si ça pourrait servir que je relise et que je rapport toutes ces petites erreurs ? 

Bon j'y retourne !

-
Edité par CocoHi1 21 août 2018 à 21:01:08

Team OC 27 août 2018 à 15:32:29

Bonjour CocoHi1,

Nous faisons relire les cours par des professionnels. Cependant, si vous trouvez des erreurs et que vous souhaitez nous les faire remonter, ce serait avec plaisir. Vous pouvez me joindre directement en MP pour cela.

28 août 2018 à 10:53:51

Eurêka!

Je viens de trouver la réponse à la question 4 de l'exercice sur l'analyse bivariée. plus de question, donc...

-
Edité par LaurentGourdon 28 août 2018 à 13:13:41

5 septembre 2018 à 14:26:10

j'ai des problèmes pour importer le fichier opération 

IL affiche cela 

FileNotFoundError                         Traceback (most recent call last)
<ipython-input-5-4b82e6fca4ec> in <module>()
 1 import pandas as pd
----> 2data = pd.read_csv("operations.csv",parse_dates=[1,2])
 3 print(data)

~\Anaconda3\lib\site-packages\pandas\io\parsers.py in parser_f(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, escapechar, comment, encoding, dialect, tupleize_cols, error_bad_lines, warn_bad_lines, skipfooter, doublequote, delim_whitespace, low_memory, memory_map, float_precision)
 676                     skip_blank_lines=skip_blank_lines)
 677 
--> 678return _read(filepath_or_buffer, kwds)
 679 
 680     parser_f.__name__ = name

~\Anaconda3\lib\site-packages\pandas\io\parsers.py in _read(filepath_or_buffer, kwds)
 438 
 439     # Create the parser.
--> 440parser = TextFileReader(filepath_or_buffer, **kwds)
 441 
 442     if chunksize or iterator:

~\Anaconda3\lib\site-packages\pandas\io\parsers.py in __init__(self, f, engine, **kwds)
 785             self.options['has_index_names'] = kwds['has_index_names']
 786 
--> 787self._make_engine(self.engine)
 788 
 789     def close(self):

~\Anaconda3\lib\site-packages\pandas\io\parsers.py in _make_engine(self, engine)
 1012     def _make_engine(self, engine='c'):
 1013         if engine == 'c':
-> 1014self._engine = CParserWrapper(self.f, **self.options)
 1015         else:
 1016             if engine == 'python':

~\Anaconda3\lib\site-packages\pandas\io\parsers.py in __init__(self, src, **kwds)
 1706         kwds['usecols'] = self.usecols
 1707 
-> 1708self._reader = parsers.TextReader(src, **kwds)
 1709 
 1710         passed_names = self.names is None

pandas\_libs\parsers.pyx in pandas._libs.parsers.TextReader.__cinit__()

pandas\_libs\parsers.pyx in pandas._libs.parsers.TextReader._setup_parser_source()

FileNotFoundError: File b'operations.csv' does not exist

[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