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

C'est un record de lutte pour frapper 100 œufs sans connaître les œufs du scientifique des données (fraîchement pondus). C'est un mystère même si vous pouvez 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

Page utilisée comme référence pour la construction de l'environnement la dernière fois

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

Il y avait beaucoup de styles d'écriture que je ne connaissais pas, et il y avait beaucoup de dictons "J'ai écrit ceci, mais la réponse était celle-ci", alors je vais le mettre à la place d'un mémo.

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 subissant des dommages à mon cœur ~~.

Cette solution est fausse! Cette interprétation est différente! Veuillez commenter si vous en avez.

table des matières problème
part1 1~9
part2 10~18
part3 19~22
part4 23~28
part5 29~32
part6 33~35
[part7] Non publié

1er

Comme prévu, cela peut être écrit. Même si vous ne vous mettez pas dans la tête même si vous vous y préparez, cela vous gênera si vous ne pouvez pas écrire ceci.

mine01.py


df_receipt.head(10)

2e

~~ Faire soudainement une erreur ~~ C'était. Lors de la projection de plusieurs colonnes, j'ai écrit [['column A', 'column B']]. Lancer une erreur est un événement quotidien.

mine02.py


df_receipt[['sales_ymd','customer_id','product_cd','amount']].head(10)

3e

Donnez une réponse différente de la réponse dès que possible. J'ai écrit

mine03.py


df=df_receipt[['sales_ymd','customer_id','product_cd','amount']]
df.columns=['sales_date','customer_id','product_cd','amount']
df.head(10)

Cela peut sembler stupide d'utiliser trois lignes pour une chose aussi simple, mais c'est arrivé parce que je le résolvais en organisant mon esprit. Ou plutôt, je n'ai pas utilisé {} ou python depuis que j'ai commencé à le faire, donc je ne savais tout simplement pas renommer.

** Réponse modèle ** df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'amount']].rename(columns={'sales_ymd': 'sales_date'}).head(10)

4e

J'ai donné une réponse différente ici aussi.

mine04.py


df=df_receipt[['sales_ymd','customer_id','product_cd','amount']]
df=df[df['customer_id']=='CS018205000001']
df

Réponse modèle df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'amount']].query('customer_id == "CS018205000001"')

Suis-je le seul à ressentir de la résistance à la partie où «query» est écrite sous forme de chaîne de caractères? ~~ Chaîne de caractères …… WAF …… Expression régulière correspondant …… La tête est ~~ Avec une entrée de type chaîne de caractères, même si vous faites une faute de frappe en interne, vous ne connaîtrez pas l'erreur. La «requête» est-elle plus rapide?

5e

mine05.py


#df=df_receipt[['sales_ymd','customer_id','product_cd','amount']]
#df=df[df['customer_id']=='CS018205000001']
df[df['amount']>=1000]

Réponse modèle df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'amount']] \ .query('customer_id == "CS018205000001" & amount >= 1000')

Comme les prérequis étaient les mêmes que pour le 4ème, j'ai utilisé df tel quel. Encore une fois, la réponse du modèle est «requête». J'ai réfléchi en écrivant, mais est-ce un style d'écriture non recommandé comme ʻix`?

De côté

df=df[df['customer_id']=='CS018205000001'] df[df['amount']>=1000] Connectez les deux lignes de df=df[df['customer_id']=='CS018205000001'][df['amount']>=1000]

Donnera le même résultat, mais /opt/conda/lib/python3.7/site-packages/ipykernel_launcher.py:2: UserWarning: La clé de série booléenne sera réindexée pour correspondre à l'index DataFrame. Je vais donner un avertissement. J'étais en colère quand j'ai pensé que df [Condition 1] [Condition 2] pouvait être fait parce que df = df [Condition] serait df.

6e

mine06.py


df=df_receipt[['sales_ymd','customer_id','product_cd','quantity','amount']]
df=df[df['customer_id']=='CS018205000001']
df=df[(1000<=df['amount'])|(5<=df['quantity'])]
df

Réponse modèle df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'quantity', 'amount']].query('customer_id == "CS018205000001" & (amount >= 1000 | quantity >=5)')

Comme les conditions s'allongent, il est encore divisé. Surtout, je pense qu'il est plus facile de comprendre si la condition AND est divisée. La réponse diminuera-t-elle?

7e

mine07.py


df=df_receipt[['sales_ymd','customer_id','product_cd','amount']]
df=df[df['customer_id']=='CS018205000001']
df=df[(1000<=df['amount'])&(df['amount']<=2000)]
df

Réponse modèle df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'amount']] \ .query('customer_id == "CS018205000001" & 1000 <= amount <= 2000')

Il est intéressant de pouvoir écrire la condition Between en un mot. Au fait, à partir de ce moment, je me suis simplement dit "Ecrire en SQL ...".

8ème

mine08.py


df=df_receipt[['sales_ymd','customer_id','product_cd','amount']]
df=df[df['customer_id']=='CS018205000001']
df=df[df['product_cd'] != 'P071401019']
df

Réponse modèle df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'amount']] \ .query('customer_id == "CS018205000001" & product_cd != "P071401019"')

Je me demande si je devrais conclure les conditions à l'intérieur dans de telles conditions.

9ème

mine09.py


df_store.query('prefecture_cd != "13" & not (floor_area > 900)')

Réponse modèle df_store.query('prefecture_cd != "13" & floor_area <= 900')

Enfin céder à la requête ~~ Pas parce que c'est un problème de réécriture. Je ne sais pas s'il était nécessaire de ne pas l'utiliser. Ou plutôt non.

Jusqu'à ici pour cette fois

Pour être honnête, la seule chose que je n'ai pas pu découvrir était ici. À partir de la prochaine fois, j'essaierai d'écrire un chiffre qui écrase des choses que je ne comprends pas.

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 ~ 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
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)
Comment mettre en œuvre 100 coups de science des données pour les débutants en science des données (pour Windows 10 Home)
"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