[PYTHON] Data Science 100 Knock ~ Kampf um weniger als Anfänger Teil11

Dies ist ein Kampfbericht über das Klopfen von 100 Eiern, ohne das Ei des Datenwissenschaftlers zu kennen. Es ist ein Rätsel, ob ich das Rennen beenden kann. ~~ Auch wenn es unterwegs verschwindet, denken Sie bitte, dass es Qiita nicht gegeben wird. ~~

100 Klopfartikel 100 Knock Guide

** Sei vorsichtig, wenn du es versuchst, da es Spoiler enthält **

Möglicherweise ist eine Aktualisierung für eine Weile nicht möglich. Wenn es verschwindet, Sumanne

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.

Diesmal von 57 bis 62. [Letztes Mal] 52-56 [Zum ersten Mal mit Inhaltsverzeichnis]

57

P-057: Kombinieren Sie das Extraktionsergebnis der vorherigen Frage und des Geschlechts (Geschlecht) und erstellen Sie neue Kategoriedaten, die die Kombination von Geschlecht und Alter darstellen. Der Wert der Kategorie, die die Kombination darstellt, ist beliebig. Die ersten 10 Elemente sollten angezeigt werden.

Zeigen Sie nur Ihr Programm und die erste Zeile

df=df_customer.copy() df_bins=pd.cut(df.age,[10,20,30,40,50,60,150],right=False,labels=[10,20,30,40,50,60]) df=pd.concat([df[['customer_id','birth_day']],df_bins],axis=1) df.head(10)


 >|customer_id 	|birth_day 	|age|
 |--:|--:|--:|
 |CS021313000114 	|1981-04-29 	|30|


#### **`mine57.py`**
```py

df=pd.concat([df_customer[['customer_id','birth_day','gender_cd']],df_bins],axis=1)
df['age_gen']=df.gender_cd.astype('str')+df.age.astype('str')
df.head(10)

'''Musterantwort'''
df_customer_era['era_gender'] = df_customer['gender_cd'] + df_customer_era['age'].astype('str')
df_customer_era.head(10)

Seit ich "pd.concat" gemacht habe, hatte ich das Gefühl, dass ich es nicht vom letzten Mal ablenken musste.

immer noch, Fügen Sie in dieser Spalte "Alter" eine Geschlechtsziffer zu 30 hinzu "1 (weiblich) + 30 (Alter) = 130" Ist der Zweck dieser Zeit

Ich habe nicht verstanden, was ich geschrieben habe

miss57.py


df=pd.concat([df_customer[['customer_id','birth_day','gender_cd']],df_bins],axis=1)
df=df.groupby(['age','gender_cd']).agg({'customer_id':'count'})
pd.pivot_table(df,index='age',columns='gender_cd')

~~ Ich habe versehentlich eine Kreuztabelle erstellt ~~

58 ..

P-058: Machen Sie den Gender-Code (gender_cd) des Kundendatenrahmens (df_customer) zu einer Dummy-Variablen und extrahieren Sie ihn zusammen mit der Kunden-ID (customer_id). Sie können 10 Ergebnisse anzeigen.

mine58.py


df=df_customer.copy()
pd.concat([df['customer_id'],pd.get_dummies(df['gender_cd'])],axis=1).head(10)

'''Musterantwort'''
pd.get_dummies(df_customer[['customer_id', 'gender_cd']], columns=['gender_cd']).head(10)

Was ist eine Dummy-Variable? Ich dachte, ich habe nachgesehen Es scheint, dass das entsprechende Element in der ersten Spalte erstellt wird und das Vorhandensein oder Fehlen des Elements in der Tabelle durch "wahr" oder "falsch" angezeigt wird.

Oder besser gesagt, es ist schneller, auf den Tisch zu schauen

männlich Weiblich Unbekannt
0 1 0
0 0 1
0 1 0
0 1 0
0 1 0

Dinge wie dieses

59

P-059: Der Verkaufsbetrag (Betrag) des Belegdetail-Datenrahmens (df_receipt) wird für jede Kunden-ID (customer_id) summiert, und der Gesamtverkaufsbetrag wird auf einen Durchschnitt von 0 und eine Standardabweichung von 1 sowie die Kunden-ID ** standardisiert **. , Anzeige mit dem Gesamtumsatz. Die zur Standardisierung verwendete Standardabweichung kann entweder eine unverzerrte Standardabweichung oder eine Stichprobenstandardabweichung sein. Wenn die Kunden-ID jedoch mit "Z" beginnt, handelt es sich um ein Nichtmitglied. Schließen Sie sie daher von der Berechnung aus. Sie können 10 Ergebnisse anzeigen.

……

………

Was ist Standardisierung?

Ich habe verschiedene Seiten gelesen und versucht, sie zu verstehen, aber ich konnte mich nicht einholen, weil ich zu dieser Zeit die Mathematik übersprungen habe.

Soll ich meine Senioren bitten, mir die Referenzwebsite mitzuteilen? Schreibe auch

df['hyou1'] =df['amount_sum'] - df.amount_sum.mean()

Ich habe einen Fehler gemacht.

Ich habe versucht, die Antwort "preprocessing.scale" in umgekehrter Reihenfolge nachzuschlagen, um sie irgendwie zu verstehen

https://note.nkmk.me/python-list-ndarray-dataframe-normalize-standardize/ Zweite Hälfte

Normalisierung / Standardisierung von pandas.DataFrame und pandas.Series Verwenden Sie die Pandas-Methode ~ Ausgelassen ~

Im Programm print( (df.T - df.T.mean()) / df.T.std() ) # col1 col2 col3 # a -1.0 0.0 1.0 # b -1.0 0.0 1.0 # c -1.0 0.0 1.0

Das ist es Mit anderen Worten (Data /.mean ()) /.std () Wenn ja

mine59.py


df=df_receipt.copy()
df=df.query('not customer_id.str.startswith("Z")',engine='python')
df=df.groupby('customer_id').agg({'amount':'sum'}).reset_index()

df['hyou1'] =(df['amount'] - df.amount.mean()) / df.amount.std()
df.head(10)

'''Musterantwort'''
#sklearn Vorverarbeitung.Berechnet mit der Standardabweichung der Stichprobe zur Verwendung der Skala
df_sales_amount = df_receipt.query('not customer_id.str.startswith("Z")', engine='python'). \
    groupby('customer_id').agg({'amount':'sum'}).reset_index()
df_sales_amount['amount_ss'] = preprocessing.scale(df_sales_amount['amount'])
df_sales_amount.head(10)

Es stimmte überein.

60 ..

P-060: Der Verkaufsbetrag (Betrag) des Belegdetail-Datenrahmens (df_receipt) wird für jede Kunden-ID (customer_id) summiert, und der Gesamtverkaufsbetrag wird auf den Mindestwert 0 und den Maximalwert 1 auf die Kunden-ID und den Verkaufsbetrag normiert. Anzeige mit der Summe. Wenn die Kunden-ID jedoch mit "Z" beginnt, handelt es sich um ein Nichtmitglied. Schließen Sie sie daher von der Berechnung aus. Sie können 10 Ergebnisse anzeigen.

Bei Same Site

print((df - df.min()) / (df.max() - df.min())) # col1 col2 col3 # a 0.0 0.0 0.0 # b 0.5 0.5 0.5 # c 1.0 1.0 1.0

Weil es gibt, wird dies umgeleitet

mine60.py


df=df_receipt.copy()
df=df.query('not customer_id.str.startswith("Z")',engine='python')
df=df.groupby('customer_id').agg({'amount':'sum'}).reset_index()
df['minmax'] =(df['amount'] - df.amount.min()) / (df.amount.max()-df.amount.min())
df.head(10)

'''Musterantwort'''
#sklearn Vorverarbeitung.Berechnet mit der Standardabweichung der Stichprobe zur Verwendung der Skala
df_sales_amount = df_receipt.query('not customer_id.str.startswith("Z")', engine='python'). \
    groupby('customer_id').agg({'amount':'sum'}).reset_index()
df_sales_amount['amount_mm'] = preprocessing.minmax_scale(df_sales_amount['amount'])
df_sales_amount.head(10)

61. und 62 ..

P-061: Der Verkaufsbetrag (Betrag) des Belegdetail-Datenrahmens (df_receipt) wird für jede Kunden-ID (customer_id) summiert, und der Gesamtverkaufsbetrag wird in einen regulären logarithmischen Wert (Basis = 10) umgewandelt, um die Kunden-ID und den Verkaufsbetrag zu summieren Anzeige mit. Wenn die Kunden-ID jedoch mit "Z" beginnt, handelt es sich um ein Nichtmitglied. Schließen Sie sie daher von der Berechnung aus. Sie können 10 Ergebnisse anzeigen.

P-062: Der Verkaufsbetrag (Betrag) des Belegdetail-Datenrahmens (df_receipt) wird für jede Kunden-ID (customer_id) summiert, und der Gesamtverkaufsbetrag wird in einen natürlichen logarithmischen Wert (Basis = e) umgewandelt, um die Kunden-ID und den Verkaufsbetrag zu summieren. Anzeige mit. Wenn die Kunden-ID jedoch mit "Z" beginnt, handelt es sich um ein Nichtmitglied. Schließen Sie sie daher von der Berechnung aus. Sie können 10 Ergebnisse anzeigen.

Für die Logarithmisierung Exponentialfunktion verwenden

mine61_62.py


df=df_receipt.copy()
df=df.query('not customer_id.str.startswith("Z")',engine='python')
df=df.groupby('customer_id').agg({'amount':'sum'}).reset_index()

#60, reguläres logarithmisches Verhältnis
df['jouyou']=df.amount.apply(lambda x: math.log10(x))
#61, natürliches logarithmisches Verhältnis
df['shizen']=df.amount.apply(lambda x: math.log(x))

df.head(10)

Kann mit gelöscht werden

mohan61_62.py


#sklearn Vorverarbeitung.Berechnet mit der Standardabweichung der Stichprobe zur Verwendung der Skala
df_sales_amount = df_receipt.query('not customer_id.str.startswith("Z")', engine='python'). \
    groupby('customer_id').agg({'amount':'sum'}).reset_index()
df_sales_amount['amount_log10'] = np.log10(df_sales_amount['amount'] + 1)
df_sales_amount.head(10)

#sklearn Vorverarbeitung.Berechnet mit der Standardabweichung der Stichprobe zur Verwendung der Skala
df_sales_amount = df_receipt.query('not customer_id.str.startswith("Z")', engine='python'). \
    groupby('customer_id').agg({'amount':'sum'}).reset_index()
df_sales_amount['amount_loge'] = np.log(df_sales_amount['amount'] + 1)
df_sales_amount.head(10)

………

Was ist "+ 1"?

Bis hierher für diese Zeit

Das Protokoll ist ein Teil, den ich in der Mathematik der High School verwirrt habe, also tut es mir wirklich leid. Wenn Sie über diese + 1 Bescheid wissen, kommentieren Sie bitte. Wirklich Niwa Karanai

Recommended Posts

Data Science 100 Knock ~ Kampf um weniger als Anfänger Teil3
Data Science 100 Knock ~ Kampf um weniger als Anfänger Teil6
Data Science 100 Knock ~ Kampf um weniger als Anfänger Teil2
Data Science 100 Knock ~ Kampf um weniger als Anfänger Teil9
Data Science 100 Knock ~ Kampf um weniger als Anfänger Teil7
Data Science 100 Knock ~ Kampf um weniger als Anfänger Teil11
Data Science 100 Knock ~ Kampf um weniger als Anfänger Teil5
Data Science 100 Knock ~ Kampf um weniger als Anfänger Teil10
Data Science 100 Knock ~ Kampf um weniger als Anfänger Teil8
Data Science 100 Klopfkommentar (P021 ~ 040)
Data Science 100 Klopfkommentar (P041 ~ 060)
Data Science 100 Klopfkommentar (P081 ~ 100)
"Data Science 100 Knock (Strukturierte Datenverarbeitung)" Python-007 Erläuterung
"Data Science 100 Knock (Strukturierte Datenverarbeitung)" Python-006 Erläuterung
"Data Science 100 Knock (Strukturierte Datenverarbeitung)" Python-001 Erläuterung
Erkennung von Zeitreihendatenanomalien für Anfänger
"Data Science 100 Knock (Strukturierte Datenverarbeitung)" Python-002 Erläuterung
[Python] 100 Schläge auf Data Science (strukturierte Datenverarbeitung) 021 Erläuterung
"Data Science 100 Knock (Strukturierte Datenverarbeitung)" Python-004 Erläuterung
[Python] 100 Schläge auf Data Science (strukturierte Datenverarbeitung) 020 Erläuterung
[Python] 100 Schläge auf Data Science (strukturierte Datenverarbeitung) 025 Erläuterung
"Data Science 100 Knock (Strukturierte Datenverarbeitung)" Python-003 Erläuterung
[Python] 100 Schläge auf Data Science (strukturierte Datenverarbeitung) 019 Erläuterung
[Praktisch für Anfänger] Lesen Sie zaggles "Predicting Home Prices" Zeile für Zeile (Teil 1: Lesen von Daten)
[Linux-Befehl] Liste weniger Befehlsoptionen [Muss für Anfänger sein]
Verwendung von Datenanalysetools für Anfänger
Vorbereitung zum Versuch "Data Science 100 Knock (Strukturierte Datenverarbeitung)"
Umgebungskonstruktion (Windows 10) für 100 Schläge Data Science (strukturierte Datenverarbeitung)
Pandas-Grundlagen für Anfänger ② Übersicht über die Daten