Hallo, das ist Motty. Da ich vor kurzem mit kaggle angefangen habe, möchte ich die einfache Operation der Datenverarbeitung mit Pandas zusammenfassen, die wesentlich ist ('`). ・ Offizielle Website von Kaggle https://www.kaggle.com/ ・ Pandas Benutzerhandbuch https://pandas.pydata.org/docs/user_guide/index.html
Pandas ist eine Python-Datenverarbeitungsbibliothek. Sie können Tabellen einfach bedienen, fehlende Werte aggregieren und vervollständigen. Es gibt viele andere Dinge, wie das Verbinden von Spalten, das Anzeigen einer Korrelationsmatrix und das Kreuztabellieren.
kaggle Classic, verwendet aber Daten zum Überleben der Titanic.
import numpy as np
import matplotlib.pyplot as plt
%matplotlib.inline
import pandas as pd
df_train = pd.read_csv("train.csv")
df_train.columns #Artikelliste
Index(['PassengerId', 'Survived', 'Pclass', 'Name', 'Sex', 'Age', 'SibSp', 'Parch', 'Ticket', 'Fare', 'Cabin', 'Embarked'], dtype='object')<Figure size 1080x1080 with 0 Axes>
df_train.shape #Größe
(891,12) Es ist die Größe der Warteschlange. Schauen wir uns nur die ersten 5 Zeilen an.
df_train.head()
Quantitative Daten und qualitative Daten sind gemischt. (PClass ist keine quantitative Beziehung zueinander, daher kann es als qualitative Daten angesehen werden!)
df_train["Name"] #1 Säulenextraktion
df_train.loc[:,["Name","Sex"]] #Mehrsäulenextraktion
df_train[10:15] #Zeilenextraktion
df_train[10:20:2] #Eine Zeile überspringen
df_train[df_train["Age"] < 20] #Wertespezifikation
df_train[1:300].query('Age < 20 and Sex == "male"') #Geben Sie mehrere Bedingungen mit Abfrage an
df_train["Pclass"].value_counts()
3 491 1 216 2 184 Name: Pclass, dtype: int64 Es gibt das aggregierte Ergebnis für jedes Element zurück.
df_train.isnull() #True → Fehlender Wert
df_train.isnull().sum()
PassengerId 0 Survived 0 Pclass 0 Name 0 Sex 0 Age 177 SibSp 0 Parch 0 Ticket 0 Fare 0 Cabin 687 Embarked 2 dtype: int64
Sie können die Gesamtzahl der NaNs für jedes Spaltenelement in der Liste abrufen. Auf dieser Grundlage werden wir eine Richtlinie zur Ergänzung fehlender Werte festlegen.
Die Korrelationsmatrix ist der Korrelationskoeffizient zwischen jeder Variablen.
df_train.corr() #Anzeige des Korrelationskoeffizienten
PassengerId Survived Pclass Age SibSp Parch Fare PassengerId 1.000000 -0.005007 -0.035144 0.036847 -0.057527 -0.001652 0.012658 Survived -0.005007 1.000000 -0.338481 -0.077221 -0.035322 0.081629 0.257307 Pclass -0.035144 -0.338481 1.000000 -0.369226 0.083081 0.018443 -0.549500 Age 0.036847 -0.077221 -0.369226 1.000000 -0.308247 -0.189119 0.096067 SibSp -0.057527 -0.035322 0.083081 -0.308247 1.000000 0.414838 0.159651 Parch -0.001652 0.081629 0.018443 -0.189119 0.414838 1.000000 0.216225 Fare 0.012658 0.257307 -0.549500 0.096067 0.159651 0.216225 1.000000
Die diagonale Komponente ist immer 1, weil sie mit sich selbst korreliert. Es gibt jedoch nicht nur quantitative Daten, sondern auch Zeichenketten (Geschlecht, Einschiffung) und qualitative Daten unter Verwendung von Zahlen (Klasse), die in One-Hot-Darstellungen umgewandelt werden müssen.
dummy_df = pd.get_dummies(df_train, columns = ["Sex","Embarked","Pclass"]) #Holen Sie sich Dummy-Variablen
dummy_df.columns
Index(['PassengerId', 'Survived', 'Name', 'Age', 'SibSp', 'Parch', 'Ticket', 'Fare', 'Cabin', 'Sex_female', 'Sex_male', 'Embarked_C', 'Embarked_Q', 'Embarked_S', 'Pclass_1', 'Pclass_2', 'Pclass_3'], dtype='object')
dummy_df.corr()
Ich werde es nicht schreiben, weil es riesig ist, aber die zuvor erwähnte Korrelationsmatrix wurde für Zeichenfolgendaten weggelassen. Dieses Mal wird eine Korrelationsmatrix mit der durch einen Dummy (0,1) ersetzten qualitativen Variablen zurückgegeben.
Schauen wir uns die Korrelationsmatrix mit der HeatMap von seaborn an. Für die Farbpalette habe ich eine Farbpalette mit einer kontrastierenden Farbtiefe ausgewählt, die auf 0 zentriert ist.
import seaborn as sns
plt.figure(figsize = (12,10))
sns.heatmap(dummy_df.corr(), cmap = "seismic",vmin = -1 ,vmax = 1, annot = True)
Diejenigen, die in hohem Maße mit Servived korrelieren, können als Auswirkungen auf Servived angesehen werden. Die Korrelation zwischen Sex_female und Pclass_1 ist hoch. Dies bedeutet, dass Menschen, die Frauen sind oder eine Raumklasse von 1 haben, eine hohe Überlebensrate haben. Wenn Sie es gut verwenden, können Sie in der Phase vor dem maschinellen Lernen einen Richtlinienstern setzen!
Ich habe auf den folgenden Artikel verwiesen. Referenz-URL ・ Pandas Grundoperation, die häufig in der Datenanalyse auftritt https://qiita.com/ysdyt/items/9ccca82fc5b504e7913a · Zusätzliche Information. Es ist Zeit für Sie, die Seaborn Heat Map zu verwenden. von Mama https://qiita.com/hiroyuki_kageyama/items/00d0f52724f16ad7cf77 Nachschlagewerk <a target = "_ blank" href = "https://www.amazon.co.jp/gp/product/B07C3JFK3V/ref=as_li_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=B07C3JFK3V&linkCode=c7=clink2> > Vollständige Vorverarbeitung [SQL / R / Python-Übungstechniken für die Datenanalyse] <img src = "// ir-jp.amazon-adsystem.com/e/ir?t=organiccrypt-22&l=am2&o" = 9 & a = B07C3JFK3V "width =" 1 "height =" 1 "border =" 0 "alt =" "style =" border: none! Wichtig; Rand: 0px! Wichtig; "/> <a target = "_ blank" href = "https://www.amazon.co.jp/gp/product/B084MD5DGG/ref=as_li_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=B084MD5DGG&linkCode=as2&c > Kann im Feld eingesetzt werden! pandas Einführung in die Datenvorverarbeitung Vorverarbeitungsmethoden, die für maschinelles Lernen und Datenwissenschaft nützlich sind <img src = "// ir-jp.amazon-adsystem.com/e/ir?t=organiccrypt-22&l=am2&o=9&a=" B084MD5DGG "width =" 1 "height =" 1 "border =" 0 "alt =" "style =" border: none! Wichtig; Rand: 0px! Wichtig; "/>
Ist es nicht möglich, es für die Datenverarbeitung einfach in ein Numpy-Array zu legen? Ich dachte, aber es ist attraktiv, dass die Datenverarbeitung einfach durchgeführt werden kann. Im Gegenteil, wenn Sie erweiterte Berechnungen für DataFrame durchführen möchten, ist es möglicherweise besser, es einmal in ein Array zu verschieben ...?
Recommended Posts