[PYTHON] Grundlegende Bedienung von Pandas

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

Überblick

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.  2020-07-31 18.05.25.png

Zu verwendende Daten

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")

Bestätigung der Daten

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()

 2020-07-31 18.25.12.png Quantitative Daten und qualitative Daten sind gemischt. (PClass ist keine quantitative Beziehung zueinander, daher kann es als qualitative Daten angesehen werden!)

Spalten- / Zeilenextraktion

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

Aggregat

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.

Bestätigung fehlender Werte

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.

Anzeige der Korrelationsmatrix

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.

Visualisierung

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)

 2020-07-31 18.02.21.png

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!

Verweise

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; "/>

Am Ende

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

Grundlegende Bedienung von Pandas
Grundlegende Bedienung von Pandas
Zusammenfassung der grundlegenden Verwendung von Pandas
Grundlegende Bedienung von Python Pandas Series und Dataframe (1)
[Python] Operationsnotiz von Pandas DataFrame
Pandas Operations Memorandum
Ich habe die Grundoperation von Pandas im Jupyter Lab geschrieben (Teil 1)
Ich habe die grundlegende Operation von Pandas im Jupyter Lab geschrieben (Teil 2).
[Python] Operation der Aufzählung
Automatischer Betrieb von Chrome mit Python + Selen + Pandas
Grundlegende Verwendung von Flask-Classy
Grundlegende Verwendung von Jinja2
Liste der grundlegenden Operationen für Python3-Listen, -Tapples, -Wörterbücher und -Sätze
Grundlegende Verwendung von SQL Alchemy
Grundkenntnisse in Python
Python Basic - Pandas, Numpy -
Python-Anwendung: Pandas Teil 1: Basic
Super grundlegende Verwendung von Pytest
Grundlegende Verwendung der PySimple-Benutzeroberfläche
Filterbetrieb (Keine, Liste)
Grundlegender Ablauf der Erkennung von Anomalien
XPath-Grundlagen (1) - Grundkonzept von XPath
Einzeiliges Basisdiagramm von HoloViews
Verhalten der Pandas Rolling () Methode
Grundlegende Verwendung von Python-F-String
Index der Verwendung bestimmter Pandas
Die Kraft der Pandas: Python
Ich habe die Grundoperation von Seaborn im Jupyter Lab geschrieben
[Wissenschaftlich-technische Berechnung von Python] Grundlegende Operation des Arrays, numpy
Ich habe die Grundoperation von Numpy im Jupyter Lab geschrieben.
Ich habe die Grundoperation von matplotlib in Jupyter Lab geschrieben
Grundkenntnisse in Linux und Grundbefehle
Arbeitsmemorandum (Pymongo) Teil 1. Grundlegende Bedienung
Zusammenfassung der Grundkenntnisse von PyPy Teil 1
Zusammenfassung der grundlegenden Implementierung von PyTorch
Funktionen von pd.NA in Pandas 1.0.0 (rc0)
Etosetra im Zusammenhang mit Pandas read_csv
Pandas
Über den Grundtyp von Go
[Memo] Kleine Geschichte von Pandas, numpy
1. Mit Python 1-1 gelernte Statistiken. Grundlegende Statistiken (Pandas)
Benachrichtigen Sie LINE über Informationen zum Zugbetrieb
Grundlegende Grammatik des Python3-Systems (Wörterbuch)
Betriebsnotiz der virtuellen Conda-Umgebung
Grundlegendes Studium von OpenCV mit Python
[Python] Zusammenfassung der Verwendung von Pandas
[Linux] Überprüfung häufig verwendeter Basisbefehle 2
Zusammenfassung der häufig verwendeten Methoden bei Pandas
[Entwurfsstudie 1] Entwurfsstudie des PC-Betriebsautomatisierungssystems 1
Betrieb des automatischen Handelsskripts für virtuelle Währungen
Eine kleine Überprüfung von Pandas 1.0 und Dask
Grundlegendes Schreiben verschiedener Programmiersprachen (Self-Memo)
Grundlegende Verwendung von Btrfs in Arch Linux