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é |
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)
~~ 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)
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)
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?
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`?
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.
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?
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 ...".
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.
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.
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