[PYTHON] Probieren Sie grundlegende Operationen mit Pandas DataFrame auf Jupyter Notebook aus

Bisher war die Datenmanipulation mit Pandas in Python eine Haltung, bei der Sie nur googeln sollten, um herauszufinden, wie Sie sie bei Bedarf verwenden können. Wenn Sie jedoch Datenanalyse und maschinelles Lernen studieren, können Sie Jupyter Notebook zum Schlürfen von Daten verwenden. Ich habe das Gefühl, dass ich nicht sprechen kann, wenn ich es nicht bedienen kann, also beginne ich mich neu zu organisieren und zu lernen, wie man Pandas von Grund auf benutzt. Dieser Artikel ist die Studiennotiz.

Der Inhalt dieses Artikels wird in der Jupyter Notebook-Umgebung getestet, die gemäß dem folgenden Link erstellt wurde. Einfache Installation und Inbetriebnahme von Jupyter Notebook mit Docker (unterstützt auch nbextensions und Scala) --Qiita

In dieser Umgebung können Sie mit einem Browser auf Port 8888 zugreifen und Jupyter Notebook verwenden. Sie können eine neue Notiz öffnen, indem Sie oben rechts auf Neu> Python 3 klicken.

DataFrame-Übersicht

Ein Pandas DataFrame ist ein Bild von Tabellendaten mit Zeilen und Spalten. Zeilen können beginnend mit 0 nummeriert werden, aber es scheint, dass sie Zeichenfolgen sein können. Die Spalten haben die Namen der Spalten.

Während DataFrame tabellarisch ist, gibt es auch ein Nur-Spalten-Objekt namens Serie.

Die folgenden Artikel waren für den Inhalt von DataFrame und Series sehr hilfreich. Meine pandas.Series- und DataFrame-Bilder waren falsch - Qiita

Python-Paketimport

import pandas as pd

Aus CSV-Datei lesen

#Wenn es einen Header gibt
df = pd.read_csv("data.csv")
#Die Kopfzeile wird zum Spaltennamen

#Wenn es keinen Header gibt
df = pd.read_csv("data.csv", header=None)
#Zahlen, die mit 0 beginnen, werden zu Spaltennamen

#Wenn Sie einen Spaltennamen ohne Überschrift angeben möchten
df = pd.read_csv("data.csv", names=["id", "target", "data1", "data2", "data3"])

Ab diesem Artikel werden CSV-Dateien mit entsprechenden Zufallszahlen erstellt https://github.com/suzuki-navi/sample-data/blob/master/sample-data-1.csv Ich benutze.

(GitHub formatiert und zeigt auch CSV-Dateien an)

Überprüfen Sie den Inhalt der Daten

DataFrame-Objekte können einfach auf dem Jupyter-Notizbuch überprüft werden.

image.png

Wenn Sie nur einen Teil der Daten sehen möchten

#Erste 5 Zeilen
df.head()

#Erste 3 Zeilen
df.head(3)
# or
df[:3]

#Letzte 5 Zeilen
df.tail()

#Letzte 3 Zeilen
df.tail(3)

#Extrahieren Sie nur die 11. bis 20. Zeile
# (Der Index von 0 ist 10 bis 19)
df[10:20]

#Auszug aus der 11. Zeile bis zum Ende
# (Der Index ab 0 liegt hinter 10)
df[10:]

#Überprüfen Sie nur Zeile 11
# (10 für Indizes ab 0)
df.loc[10]

#Extrahieren Sie nur bestimmte Spalten
df[["target", "data1"]]

#Extrahieren Sie nur bestimmte Spalten
#Werden Sie eine Serie anstelle eines DataFrame
df["data1"]
# df[["data1"]]Anders als

#Extrahieren Sie nur bestimmte Spalten in einem bestimmten Zeilenbereich
df[["target", "data1"]][10:20]
# or
df[10:20][["target", "data1"]]

Selbst wenn Sie nur einige Zeilen extrahieren, bleibt der an die Zeilen angehängte Index erhalten.

image.png

Überprüfen Sie das Datenformat

df.shape
# => (300, 5)

df.columns
# => Index(['id', 'target', 'data1', 'data2', 'data3'], dtype='object')

df.dtypes
# => id          int64
#    target      int64
#    data1     float64
#    data2     float64
#    data3     float64
#    dtype: object

Berechnen Sie auf Spalten

Sie können Operationen an Spalten ausführen.

df [" data1 "] ist Serie, aber wenn Sie es wie df [" data1 "] / 100 schreiben, führt es die Operation / 100 für jedes Element der Serie aus und erhält das Ergebnis in Serie. Ich kann es schaffen

image.png

Sie können auch Operationen zwischen Spalten ausführen.

df["data1"] + df["data2"]

Zeilen bedingt extrahieren

# df["data1"] >=Generieren Sie einen DataFrame, der nur aus Zeilen besteht, in denen 0 True ist
#Der Zeilenindex wird beibehalten, sodass er zu einer diskreten Zahl wird
df[df["data1"] >= 0]

#Sie können auch wie SQL abfragen
df.query('data1 >= 30 and target == 1')

#Wenn Sie eine Zeichenfolge in die Abfrage einfügen möchten""Umgeben mit
df.query('target == "1"')

Holen Sie sich eine Liste von Werten mit entfernten Duplikaten

df["target"].unique()
# => array([3, 2, 1])

Erhalten Sie Statistiken zu einer Zahlenspalte

df.describe()

image.png

Sortieren

Im Folgenden wird ein DataFrame mit Zeilen zurückgegeben, die nach der Spalte "data1" sortiert sind.

#Daten1 Spalte aufsteigende Reihenfolge
df.sort_values("data1")

#absteigende Reihenfolge der Spalte data1
df.sort_values("data1", ascending=False)

#Nach mehreren Spalten sortieren
df.sort_values(["target", "data1"], ascending=False)

Wie kann ich die erste Sortierung "Ziel" absteigend und die zweite Sortierung "Daten1" aufsteigend machen?

Spalte hinzufügen

Im folgenden Beispiel wird am rechten Ende eine neue Wertespalte hinzugefügt, die für eine vorhandene Spalte berechnet wurde.

df["data_sum"] = df["data1"] + df["data2"] + df["data3"]

image.png

das ist alles.

Recommended Posts

Probieren Sie grundlegende Operationen mit Pandas DataFrame auf Jupyter Notebook aus
Versuchen Sie, Jupyter Notebook auf einem Mac auszuführen
Probieren Sie SVM mit scikit-learn auf Jupyter Notebook aus
Jupyter Notebook Grundfunktionen und Tastenkombinationen
Probieren Sie Apache Spark mit Jupyter Notebook (auf Local Docker) aus
Tastenkombination für Jupyter-Notebook
Versuchen Sie, Jupyter Notebook dynamisch zu verwenden
Hohe Charts im Jupyter-Notizbuch
PDF auf Jupyter Notebook anzeigen
Grundlegende Befehle für Dateivorgänge
Führen Sie Jupyter Notebook unter Windows aus
Versuchen Sie, mit einem gemischten Gaußschen Modell auf Jupyter Notebook zu gruppieren
Formatieren mit autopep8 auf Jupyter Notebook
Pandas / DataFrame-Tipps für den praktischen Gebrauch
Snippet-Einstellungen für Python Jupyter Notebook
Jupyter Notebook unerlässlich für die Softwareentwicklung
Bequeme Analyse mit Pandas + Jupyter Notebook
Starten Sie das Jupyter Notebook ~ Esper-Training
Einstellungen zum Lesen von S3-Dateien mit Pandas aus Jupyter Notebook unter AWS
Jupyter Notebook-Erweiterung, nbextensions-Einstellungen für mich
Machen Sie Jupyter Notebook zu einem Dienst unter CentOS
Starten Sie das Jupiter-Notebook auf dem GPU-Server (Remote-Server).
Klonen Sie das Github-Repository auf dem Jupyter-Notizbuch
PC-GPU-Prüfung am Jupyter-Notebook
Histogramm / Streudiagramm auf Jupyter Notebook anzeigen
Erstellen Sie ein Jupyter-Notebook auf einem Remote-Server (CentOS).
Verwenden Sie vim-Tastenkombinationen in Jupyter Notebook, das mit Docker gestartet wurde
Führen Sie Jupyter Notebook auf einem Remote-Server aus
Verwendung des Jupyter-Notebooks [super basic]
Eine Bibliothek für Datenwissenschaft "Ich möchte das tun" auf dem Jupyter Notebook
Installieren Sie matplotlib und zeigen Sie das Diagramm in Jupyter Notebook an
Probieren Sie das Zustandsraummodell aus (Jupyter Notebook + IR-Kernel).
[Jupyter Notebook / Lab] Drei Möglichkeiten zum Debuggen auf Jupyter [Pdb]
Datenanalyse zur Verbesserung von POG 2 ~ Analyse mit Jupiter-Notebook ~
Aktivieren Sie Jupyter Notebook mit conda auf dem Remote-Server
Versuchen Sie, die virtuelle Umgebung von conda mit Jupyter Notebook zu verwenden
[Pythonocc] Ich habe versucht, CAD auf einem Jupyter-Notebook zu verwenden
Einfache Anzeige des Liniendiagramms auf dem Jupyter Notebook
[Python / Chrome] Grundeinstellungen und Operationen zum Scraping
(Hinweis) Grundlegende Statistiken zu Python und Pandas unter IBM DSX
Öffnen Sie das auf dem Server gestartete Jupyter-Notizbuch aus der Ferne
Versuchen Sie es mit dem Jupyter Notebook von Azure Machine Learning
Grundlegende Bedienung von Python Pandas Series und Dataframe (1)
Jupyter Notebook beginnt nicht mit Fisch auf dem Mac