pandas: mean imputation corrupts Argentina's GDP per capita in the later plot
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 82/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- pandas, python
- Domaine
- data, documentation
Piste de recherche
Commence par l’imputation des valeurs manquantes et le calcul ultérieur du PIB par habitant dans lectures/pandas.md, puis reproduis les figures à l’aide de test_pwt.csv de QuantEcon/data-lectures. Décide s’il faut conserver la valeur corrompue comme leçon sur les défaillances silencieuses ou modifier les données imputées. Le travail est terminé lorsque le cours ne présente plus comme valide le PIB par habitant incorrect de l’Argentine et que le graphique ou l’explication rend le résultat clair.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
In lectures/pandas.md, the missing value imputation step silently corrupts the GDP per capita figures that the lecture plots later.
What happens
- "Let's randomly insert some NaN values" sets
df.iloc[idx] = np.nanforidxinzip([0, 3, 5, 6], [3, 4, 6, 2]). The first pair is Argentina'sPOP. df = df.fillna(df.iloc[:,2:8].mean())replaces it with the mean population of the other countries, about 196 million, against Argentina's true 37 million. India and the United States pull the mean far up.- "Standardization and Visualization" then computes
GDP percap = total GDP * 1e6 / populationfrom thisdfand plots it.
Argentina's GDP per capita comes out at about 1,500 instead of 7,900, so the sorted bar chart shows Argentina as poorer than India. Nothing in the output signals that anything went wrong.
| country | true | in lecture |
|---|---|---|
| Argentina | 7,903 | 1,504 |
| all other countries | unchanged | unchanged |
(Reproduced against test_pwt.csv in QuantEcon/data-lectures, following the lecture's code.)
The other imputed cells (Israel XRAT, South Africa cc, US year) are not used in the GDP per capita calculation, so only Argentina is affected. Imputing year with a column mean is also odd, but harmless here.
Possible fixes
- Insert the NaNs only in columns not used later (for example
ccandcg), or reload the data before "Standardization and Visualization". - Alternatively, keep the bug and turn it into a lesson: point out that the code runs without complaint but gives a wrong answer, because imputation is a modeling choice whose errors flow through to everything computed from it. The course version of this lecture does this in a short "silent failures" section: https://jstac.github.io/py_for_ds_public/working_with_data.html
cc @mmcky
- Langage dominant
- JavaScript
- Étoiles
- 73
- Forks
- 34
- Merge moyen
- 28 min
- PR mergées (30 j)
- 5
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de QuantEcon/lecture-python-programming
-
Difficulté 2/5 1-3 heures Accessibilité débutants 83/100
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 95/100
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 95/100
-
Difficulté 1/5 1-3 heures Accessibilité débutants 95/100
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 95/100
Toutes les issues de QuantEcon/lecture-python-programming
Issues similaires
-
Add plone.svg to plone/iconsOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
ome/ngff-rfc8-revisions#50 ·
Les mainteneurs répondent en général sous 3 jours
-
Bug: Batcher binds the texture that opens a new batch twice (one draw call per element with maxBatchableTextures = 1)Peut-être pris @darzarzycki l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 77/100
Les mainteneurs répondent en général sous 2 jours
-
[Open Source] PixelboltOuverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 84/100
521xueweihan/HelloGitHub#4297 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour