[PYTHON] Data Science 100 Knock ~ Bataille pour moins que les débutants part5

C'est un record de lutte pour frapper 100 œufs sans connaître l'œuf du scientifique des données. C'est un mystère que je puisse terminer la course. ~~ Même s'il disparaît en cours de route, pensez qu'il n'est pas donné à Qiita. ~~

100 articles frappants 100 Knock Guide

** Faites attention si vous essayez de le faire car cela inclut des spoilers **

J'écris ici gudaguda car je gagne environ une page pour éviter de gâcher ()

Cette fois, j'ai répété le déraillement et je ne pouvais pas comprendre sur quoi je voulais enquêter (la cause est le 30)

C'est difficile à voir! Cette façon d'écrire est dangereuse! Si vous avez des questions, n'hésitez pas à me le faire savoir. ~~ Je vais l'utiliser comme nourriture tout en souffrant de dommages à mon cœur.

Cette fois de 29 à 32. [Dernière fois] 23-28 [Première fois avec la table des matières]

** Il y avait beaucoup de choses que je ne comprenais pas cette fois **

29e

P-029: Pour la trame de données des détails du reçu (df_receipt), recherchez la valeur la plus fréquente du code produit (product_cd) pour chaque code magasin (store_cd).

Je savais que la valeur la plus fréquente était le mode, mais dans la continuité de la dernière fois groupby(store_cd).agg({'product_cd':['mode']}) Ce sera de la mousse si vous écrivez. Ou plutôt, ça ne semble pas être en agg?

Même si j'aide et vérifie site habituel, cela ne fonctionne pas très bien. Pourquoi? Article

Bien qu'il soit également écrit sur le site suivant, si vous voulez trouver la valeur la plus fréquente en mode après group by, vous devez combiner value_counts et postuler. Bien qu'il soit en anglais, l'exemple de code est simple et facile à comprendre, veuillez donc vous y référer. https://github.com/pandas-dev/pandas/issues/11562 df.groupby ('grouping_content'). Cible que vous voulez trouver le plus fréquemment. Apply (lambda x: x.mode ())

** ~~ Lambda …… ~~ **

mine29.py


df=df_receipt
df=df.groupby('store_cd').product_cd.apply(lambda x: x.mode()).reset_index()
df.head(5)

** Ouais, je ne sais pas **

30ème

P-030: Pour la trame de données des détails du reçu (df_receipt), calculez la distribution de l'échantillon du montant des ventes (montant) pour chaque code magasin (store_cd) et affichez le TOP5 dans l'ordre décroissant.

~~ S'il vous plaît devinez au moment de lancer des phrases de problème en continu ~~

Tout d'abord, je ne suis pas bon en mathématiques à 2, et après plus de 10 ans, je meurs s'il y a des lettres et de gros symboles écrits en haut, en bas, à gauche et à droite du sigma ~~ Même lorsque je demande des écarts types dans Excel, je copie et colle

Le mot "distribution d'échantillons" qui est sorti dans une telle situation

** Distribué **

Si quelque chose est écrit, ce sera un œil blanc. Tu ne peux pas?

La formule de distribution standard ressemble à ceci

variance178.png

~~ Mourir ~~ Écrivez comme un programme pour le moment en vous cosplayant les yeux et en organisant votre tête

ikinokoru.py


def Sno2jo(X_list):

   n = len(X_list)
   X_ave = sum(X_list) / n
   ret = 0.0

   for X in range(X_list):
      ret += (X - X_ave)**2

   ret = ret / n
   return ret

Est-ce que c'est comme ça ...? (La baie commence à 0) (l'opération n'a pas été confirmée)

** Le programme peut aller **

Après cela, divers site et [vidéo] En regardant (https://www.youtube.com/watch?v=lD35jzfrxaU), je l'ai en quelque sorte compris, mais comme il a beaucoup dévié, je l'ai arrondi et je suis retourné frapper.

Je pense qu'il serait plus facile d'utiliser des fonctions statistiques cette fois (je fais du Python pour ça) et de le résoudre.

** Référence **

mine30.py


df=df_receipt
df= df.groupby('store_cd').amount.var(ddof=0).reset_index().sort_values('amount',ascending=False).head(5)
df

'''Le modèle de réponse'''
df_receipt.groupby('store_cd').amount.var(ddof=0).reset_index().sort_values('amount', ascending=False).head(5)

'''Exemple d'échec'''
df=pd.concat([df['store_cd'],df.groupby('store_cd').amount.var(ddof=0)],axis=0)

Dans l'exemple de l'échec image.png Je me suis demandé si je ne pouvais pas bien combiner car le résultat était comme ça. J'ai pensé que ce serait bien tout seul, et j'ai pu répondre par moi-même.

Non, ça a pris du temps

31e

mine31.py


df=df_receipt
df= df.groupby('store_cd').amount.std(ddof=0).reset_index().sort_values('amount',ascending=False).head()
df

Brisez 30 comme c'est avec copie Quand c'était ddof = False, on m'a dit de le passer par Int et de le mettre à 0. ddof est une estimation de correspondance ou une estimation impartiale tirée de ici et de vidéo Est-ce une différence de quantité?

32e

Je n'ai pas compris la signification de la valeur du centile (même si je l'ai comprise d'une manière ou d'une autre), alors je l'ai recherchée, puis j'ai recherché le site de référence (mise en conserve qui coule)

** Référence **

mine32.py


df=df_receipt
df['amount'].quantile([0.0,0.25,0.5,0.75,1.0])

'''Réponse modèle 1'''
np.percentile(df_receipt['amount'], q=[25, 50, 75,100])

'''Réponse modèle 2'''
df_receipt.amount.quantile(q=np.arange(5)/4)

La direction est proche de la réponse du modèle 2, mais j'ai pensé que ce serait une bonne idée d'utiliser np.arange.

Jusqu'à ici pour cette fois

Pour ceux qui veulent jouer avec ce CSV ~~ Enregistrer dans \ 100 knocks-preprocess \ docker \ work Il existe différents CSV ici

Recommended Posts

Data Science 100 Knock ~ Bataille pour moins que les débutants part5
Data Science 100 Knock ~ Battle pour moins que les débutants part10
Science des données 100 coups ~ Bataille pour moins que les débutants part8
Data Science 100 Knock ~ Bataille pour moins que les débutants part3
Data Science 100 Knock ~ Bataille pour moins que les débutants part6
Data Science 100 Knock ~ Bataille pour moins que les débutants part2
Data Science 100 Knock ~ Bataille pour moins que les débutants part1
Data Science 100 Knock ~ Battle pour moins que les débutants part9
Science des données 100 coups ~ Bataille pour moins que les débutants part7
Data Science 100 Knock ~ Bataille pour moins que les débutants part4
Data Science 100 Knock ~ Bataille pour moins que les débutants part11
Comment mettre en œuvre 100 coups de science des données pour les débutants en science des données (pour Windows 10 Home)
Défiez 100 coups de science des données
Essayez «100 coups sur la science des données» ①
Pandas 100 coups pour les débutants en Python
Détection d'anomalies de données chronologiques pour les débutants
[Pratique pour les débutants] Lire ligne par ligne "Prédire les prix des maisons" de kaggle (Partie 1: Lire les données)
[Commande Linux] Liste d'options de commande moins [À voir pour les débutants]
[Python] 100 coups sur la science des données (traitement de données structurées) 018 Explication
[Python] 100 coups sur la science des données (traitement de données structurées) 023 Explication
[Python] 100 coups sur la science des données (traitement de données structurées) 030 Explication
[Python] 100 coups sur la science des données (traitement de données structurées) 022 Explication
Comment utiliser les outils d'analyse de données pour les débutants
[Python] 100 coups sur la science des données (traitement de données structurées) 017 Explication
[Python] 100 coups sur la science des données (traitement de données structurées) 026 Explication
[Python] 100 coups sur la science des données (traitement de données structurées) 016 Explication
[Python] 100 coups sur la science des données (traitement de données structurées) 024 Explication
[Python] 100 coups sur la science des données (traitement de données structurées) 027 Explication
Principes de base de Pandas pour les débutants ② Présentation des données de saisie
[Python] 100 coups sur la science des données (traitement de données structurées) 029 Explication
[Python] 100 coups sur la science des données (traitement de données structurées) 015 Explication
[Python] 100 coups sur la science des données (traitement de données structurées) 028 Explication