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

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 ()

J'en avais marre en chemin, alors j'ai déterré le contenu de Docker.

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 du 23 au 28. [Dernière fois] 19-22 [Première fois avec la table des matières]

23e

mine23.py


df=df_receipt
df=df.groupby('store_cd').agg({'amount':'sum','quantity':'sum'}).reset_index()
df.head(10)

Oui, tout à coup une nouvelle façon d'écrire est apparue. En voyant la page de référence, il semble qu'elle puisse être utilisée pour l'agrégation de données.

Même dans Excel, la même somme, min, max peut être comprise, mais la moyenne d'écriture ave involontairement ...... Je ne l'ai pas utilisé depuis que j'ai été pris en charge par un std ou un candidat, mais je me demande s'il sera pris en charge à partir de maintenant ...

min ': valeur minimale 'max': valeur maximale 'mean': valeur moyenne 'médiane': médiane 'std': écart type

De plus, il est difficile de comprendre à première vue

df.groupby('A').agg({'B': ['min', 'max'], 'C': 'sum'})

Dans la partie de, il existe un moyen d'écrire le maximum et le minimum de "B" pour chaque "A". Cependant, si vous écrivez de cette façon, une hiérarchie sera créée. ~~ Le livre de référence dit que c'est pratique, mais c'est très ennuyeux ~~

De côté

yodan.py


df=df_receipt
df=df.groupby('customer_id').agg({'sales_ymd':['max','min']})

df['sales_ymd']#'sales_ymd'L'index disparaît'max''min'La ligne est projetée

df['sales_ymd'][['max']]#'max'Projection uniquement en colonnes

C'est très ennuyeux de devoir faire ça quand on veut se référer à la hiérarchie J'ai eu du mal avec 23-27, donc je le posterai pour le moment

24 et 25

mine24.py


df=df_receipt
df.groupby('customer_id').agg({'sales_ymd':'max'}).reset_index().head(10)

C'est la version max de 23 (ou plutôt, je l'ai réécrit en aparté)

mine25.py


'''Le modèle de réponse'''
df_receipt.groupby('customer_id').agg({'sales_ymd':'min'}).head(10)

Ceci est une réponse modèle. La réponse du modèle était calme car il y avait beaucoup de choses simples que je ne pouvais pas comprendre sans mise en conserve récemment.

26e

P-026: Recherchez la date de vente la plus récente (sales_ymd) et la date de vente la plus ancienne pour chaque ID client (customer_id) dans le bloc de données de détail de la réception (df_receipt), et affichez 10 données différentes.

mine26.py


df=df_receipt
df=df.groupby('customer_id').agg({'sales_ymd':['max','min']}).reset_index()
df=df[df['sales_ymd']['max'] != df['sales_ymd']['min']]
df.head(10)

'''Le modèle de réponse'''
df_tmp = df_receipt.groupby('customer_id').agg({'sales_ymd':['max','min']}).reset_index()
df_tmp.columns = ["_".join(pair) for pair in df_tmp.columns]
df_tmp.query('sales_ymd_max != sales_ymd_min').head(10)

Quelle est la deuxième ligne de cette réponse modèle ... Je comprends que la hiérarchie est effacée.

Le résultat de ma sortie de faire cela est

customer_id sales_ymd
max min

Alors que ça ressemble à ça

customer_id_ sales_ymd_max sales_ymd_min

Je comprends que ça a l'air beau comme ça ~~, mais après tout la hiérarchie est un obstacle ~~

27 et 28

mine27.py


df=df_receipt
df=df.groupby('store_cd').agg({'amount':['mean']}).reset_index()
df.columns=['store_id','amount_mean']
df=df.sort_values('amount_mean',ascending= False)
df.head(5)

'''Le modèle de réponse'''
df_receipt.groupby('store_cd').agg({'amount':'mean'}).reset_index().sort_values('amount', ascending=False).head(5)

mine28.py


df=df_receipt
df=df.groupby('store_cd').agg({'amount':['median']}).reset_index()
df.columns=['store_id','amount_median']
df=df.sort_values('amount_median',ascending= False)
df.head(5)

'''Le modèle de réponse'''
df_receipt.groupby('store_cd').agg({'amount':'median'}).reset_index().sort_values('amount', ascending=False).head(5)

27 et 28 sont triés. C'est un secret que j'ai écrit ~~ ʻave` ~~ Jusque-là, c'était sur le site de référence, donc ça s'est bien passé dans une certaine mesure. Le problème est la prochaine fois.

Jusqu'à ici pour cette fois

La prochaine fois, la violence des mathématiques attaquera l'écrivain qui a été moussé dans le numéro IIB! ~~ Test simulé? J'ai gagné des points en programmant! ~~

Recommended Posts

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 ~ 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
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
Commentaire sur la science des données à 100 coups (P021 ~ 040)
Commentaire de la science des données 100 coups (P041 ~ 060)
Commentaire sur la science des données à 100 coups (P081 ~ 100)
"Data Science 100 Knock (traitement de données structurées)" Explication Python-007
"Data Science 100 Knock (traitement des données structurées)" Explication Python-006
"Data Science 100 Knock (traitement des données structurées)" Explication Python-001
Détection d'anomalies de données chronologiques pour les débutants
"Data Science 100 Knock (traitement des données structurées)" Explication Python-002
[Python] 100 coups sur la science des données (traitement de données structurées) 021 Explication
"Data Science 100 Knock (traitement des données structurées)" Explication Python-005
"Data Science 100 Knock (traitement de données structurées)" Explication Python-004
[Python] 100 coups sur la science des données (traitement de données structurées) 020 Explication
[Python] 100 coups sur la science des données (traitement de données structurées) 025 Explication
"Data Science 100 Knock (traitement des données structurées)" Explication Python-003
[Python] 100 coups sur la science des données (traitement de données structurées) 019 Explication
[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]
Comment utiliser les outils d'analyse de données pour les débutants
Préparation à l’essai de «Data Science 100 Knock (traitement des données structurées)»
Construction d'environnement (Windows 10) pour 100 coups de science des données (traitement de données structurées)
Principes de base de Pandas pour les débutants ② Présentation des données de saisie