Dies ist ein Kampfbericht über das Klopfen von 100 Eiern, ohne die Eier des Datenwissenschaftlers zu kennen (frisch gelegt). Es ist ein Rätsel, auch wenn Sie das Rennen beenden können. ~~ Auch wenn es unterwegs verschwindet, denken Sie bitte, dass es Qiita nicht gegeben wird. ~~
100 Klopfartikel 100 Knock Guide
Seite, die beim letzten Mal als Referenz für die Erstellung der Umgebung verwendet wurde
** Sei vorsichtig, wenn du es versuchst, da es Spoiler enthält **
Es gab viele Schreibstile, die ich nicht kannte, und es gab viele Sprüche "Ich habe das geschrieben, aber die Antwort war das", also werde ich es anstelle eines Memos einfügen.
Das ist schwer zu sehen! Diese Schreibweise ist gefährlich! Wenn Sie Fragen haben, lassen Sie es mich bitte wissen. ~~ Ich werde es als Nahrung verwenden, während mein Herz geschädigt wird.
Diese Lösung ist falsch! Diese Interpretation ist anders! Bitte kommentieren Sie, wenn Sie welche haben.
Inhaltsverzeichnis | Problem |
---|---|
part1 | 1~9 |
part2 | 10~18 |
part3 | 19~22 |
part4 | 23~28 |
part5 | 29~32 |
part6 | 33~35 |
[part7] | Nicht veröffentlicht |
Wie erwartet kann dies geschrieben werden. Selbst wenn Sie nicht in Ihren Kopf geraten, selbst wenn Sie sich darauf vorbereiten, wird es Sie behindern, wenn Sie dies nicht schreiben können.
mine01.py
df_receipt.head(10)
~~ Plötzlich einen Fehler machen ~~ Es war. Beim Projizieren mehrerer Spalten habe ich "[['Spalte A', 'Spalte B']]" geschrieben. Es ist ein tägliches Ereignis, einen Fehler auszulösen.
mine02.py
df_receipt[['sales_ymd','customer_id','product_cd','amount']].head(10)
Geben Sie so schnell wie möglich eine Antwort, die sich von der Antwort unterscheidet. Ich schrieb
mine03.py
df=df_receipt[['sales_ymd','customer_id','product_cd','amount']]
df.columns=['sales_date','customer_id','product_cd','amount']
df.head(10)
Es mag dumm erscheinen, drei Zeilen für eine so einfache Sache zu verwenden, aber es geschah, weil ich es löste, während ich meinen Geist organisierte. Oder besser gesagt, ich habe weder {}} noch Python verwendet, seit ich damit angefangen habe, also wusste ich einfach nicht, wie ich umbenennen soll.
** Modellantwort **
df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'amount']].rename(columns={'sales_ymd': 'sales_date'}).head(10)
Auch hier habe ich eine andere Antwort gegeben.
mine04.py
df=df_receipt[['sales_ymd','customer_id','product_cd','amount']]
df=df[df['customer_id']=='CS018205000001']
df
Modellantwort df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'amount']].query('customer_id == "CS018205000001"')
Bin ich der einzige, der Widerstand gegen den Teil empfindet, in dem "Abfrage" als Zeichenkette geschrieben ist? ~~ Zeichenkette …… WAF …… Übereinstimmung mit regulären Ausdrücken …… Der Kopf ist ~~ Selbst wenn Sie intern einen Tippfehler machen, kennen Sie bei der Eingabe des Zeichenkettentyps den Fehler nicht. Ist "Abfrage" schneller?
mine05.py
#df=df_receipt[['sales_ymd','customer_id','product_cd','amount']]
#df=df[df['customer_id']=='CS018205000001']
df[df['amount']>=1000]
Modellantwort
df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'amount']] \ .query('customer_id == "CS018205000001" & amount >= 1000')
Da die Voraussetzungen mit denen des 4. identisch waren, habe ich "df" so wie es ist verwendet. Wieder lautet die Modellantwort "Abfrage". Ich dachte beim Schreiben, aber ist es ein veralteter Schreibstil wie "ix"?
df=df[df['customer_id']=='CS018205000001'] df[df['amount']>=1000]
Verbinden Sie die beiden Leitungen von
df=df[df['customer_id']=='CS018205000001'][df['amount']>=1000]
Gibt das gleiche Ergebnis, aber "/opt/conda/lib/python3.7/site-packages/ipykernel_launcher.py:2: UserWarning: Der Schlüssel der Booleschen Serie wird neu indiziert, um dem DataFrame-Index zu entsprechen." Ich werde eine Warnung geben. Ich war wütend, als ich dachte, ich könnte zu df [Bedingung 1] [Bedingung 2] gehen, weil df = df [Bedingung] df wäre.
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
Modellantwort
df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'quantity', 'amount']].query('customer_id == "CS018205000001" & (amount >= 1000 | quantity >=5)')
Da die Bedingungen länger werden, wird es weiter aufgeteilt. Insbesondere denke ich, dass es einfacher zu verstehen ist, wenn die UND-Bedingung geteilt ist. Wird die Antwort sinken?
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
Modellantwort
df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'amount']] \ .query('customer_id == "CS018205000001" & 1000 <= amount <= 2000')
Es ist attraktiv, die Zwischenbedingung in einem Wort schreiben zu können. Übrigens dachte ich von diesem Punkt an nur "Write in 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
Modellantwort
df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'amount']] \ .query('customer_id == "CS018205000001" & product_cd != "P071401019"')
Ich frage mich, ob ich die Bedingungen im Inneren unter solchen Bedingungen abschließen soll.
mine09.py
df_store.query('prefecture_cd != "13" & not (floor_area > 900)')
Modellantwort
df_store.query('prefecture_cd != "13" & floor_area <= 900')
Geben Sie schließlich nach, um ~~ abzufragen Nicht, weil es ein Problem beim Umschreiben ist. Nicht sicher, ob es notwendig war, nicht zu verwenden. Oder besser gesagt, nein.
Um ehrlich zu sein, war das einzige, was ich nicht herausfinden konnte, hier. Ab dem nächsten Mal werde ich versuchen, eine Figur zu schreiben, die Dinge zerquetscht, die ich nicht verstehe.
Recommended Posts