[PYTHON] Pandas / DataFrame-Tipps für den praktischen Gebrauch

Einführung

Bei der Datenanalyse wie dem maschinellen Lernen ist die Datenvorverarbeitung unverzichtbar, und insbesondere in der Praxis sind alle Daten unerwartet. Python hat jedoch das stärkste Modul namens Pandas, und es gibt fast nichts, was bei der Datenverarbeitung strukturierter Daten nicht möglich ist. Unter Pandas wird DataFrame, das Tabellendaten verarbeitet, extrem häufig verwendet, und DataFrame wird hier erläutert. Der aktuelle Code ist auf github aufgeführt. Bitte beziehen Sie sich darauf. https://github.com/andever-flatfish/pandas-tips/blob/master/notebook/pandas-tips.ipynb

Führen Sie zunächst jeden Tipp mit dem folgenden DataFrame aus.

import pandas as pd

df = pd.DataFrame([['tokyo', 'male', 21, 165, 63],
                   ['osaka', 'male', 28, 170, 71],
                   ['fukuoka', 'female', 32, 175, 58],
                   ['tokyo', 'male', 21, 165, 63],
                   ['osaka', 'female', 28, 175, 70],
                   ['fukuoka', 'male', 32, 155, 58],
                   ['tokyo', 'female', 21, 165, 63],
                   ['osaka', 'male', 28, 172, 67],
                   ['fukuoka', 'male', 42, 155, 48]],
                   columns=['area', 'gender', 'age', 'height', 'weight'])
sample_df.png

Datentypbestätigung / Typkonvertierung

Da Python eine dynamisch typisierte Sprache ist, müssen Sie sich der Typen grundsätzlich nicht bewusst sein. Es kommt jedoch häufig vor, dass ein unerwarteter Fehler auftritt. Zum Beispiel haben die Daten, von denen ich dachte, dass sie vom Typ int sind, nur einen Datenraum und sind vom Objekttyp. Überprüfen Sie in diesem Fall den folgenden Datentyp.


df.dtypes
area      object
gender    object
age        int64
height     int64
weight     int64
dtype: object

Wenn Sie nur eine Spalte sehen möchten, können Sie unten überprüfen.


df['height'].dtype
dtype('int64')

Wenn Sie den Typ int in den Typ float konvertieren möchten, können Sie wie folgt vorgehen. Wenn Sie mit df ['height']. Dtype oben überprüfen, können Sie sehen, dass es konvertiert wurde.


df['height'] = df['height'].astype(float)

Um den Objekttyp in den Typ int oder float zu konvertieren, müssen jedoch die Daten, die zum Objekttyp geworden sind (z. B. Leerzeichen), korrigiert oder entfernt und anschließend mit astype konvertiert werden.

Überprüfen Sie den Spaltennamen von DataFrame

Oft möchten Sie die Spaltennamen in einem DataFrame sehen. Wenn Sie für jede Spalte etwas tun möchten, ist es außerdem praktisch, die Spaltennamen in einer Liste zu speichern.


df_columns = list(df.columns)
print(df_columns)
['area', 'gender', 'age', 'height', 'weight']

Extrahieren Sie nur Daten in einer bestimmten Zeile

Nur Daten, die bestimmte Bedingungen erfüllen, können zeilenweise extrahiert werden. Wenn Sie beispielsweise Daten extrahieren möchten, deren Bereich nur "fukuoka" in df ist, können Sie ihn wie folgt extrahieren.


part_of_df1 = df[df['area']=='fukuoka']
part_of_df.png

Wenn Sie Daten mit 'Bereich' von'tokyo'or'osaka 'in df extrahieren möchten, können Sie sie auch wie folgt extrahieren.


part_of_df2 = df[df['area'].isin(['tokyo', 'osaka'])]
part_of_df2.png

Ordnen Sie die Zahlen im Index neu zu

Wenn Sie nur die Daten einer bestimmten Zeile extrahieren, bleibt der Index der Index des ursprünglichen DataFrame. Weisen Sie den Index daher wie folgt neu zu.


part_of_df1.reset_index(drop=True, inplace=True)
reset_index_part_of_df.png

Ändern Sie die Reihenfolge der Spalten

Wenn Sie die Reihenfolge der Spalten im DataFrame ändern möchten, können Sie die Spalten in der Reihenfolge auflisten, in der Sie diese Liste sortieren und aufrufen möchten.


sorted_columns_list1 = ['height', 'weight', 'gender', 'area', 'age']
sorted_df1 = df[sorted_columns_list1]
sorted_df1.png

Neben der Sortierung können auch nur bestimmte Spalten extrahiert werden.


sorted_columns_list2 = ['area', 'gender', 'age']
sorted_df2 = df[sorted_columns_list2]
sorted_df2.png

Spaltennamen ändern

Verwenden Sie Umbenennen, um die Spaltennamen wie folgt zu ändern:


rename_df = df.rename(columns={'area':'Bereich',
                               'gender':'Sex', 
                               'age':'Alter', 
                               'height':'Höhe', 
                               'weight':'Körpergewicht'})
rename_df.png

Andere Datenrahmen vereinen

Verwenden Sie Anhängen, um verschiedene Daten mit demselben Spaltennamen zu verbinden.


other_df = pd.DataFrame([['hokkaido', 'male', 25, 162, 60],
                         ['hokkaido', 'female', 38, 179, 81]],
                         columns=['area', 'gender', 'age', 'height', 'weight'])

union_df = df.append(other_df, ignore_index=True)
union_df.png

Grundstatistik berechnen

Um numerische Daten zu bestätigen, können Sie bei der Berechnung der Basisstatistik einen Treffer wie einen Ausreißer erhalten.


df.describe()
numerical_data.png

CSV lesen / schreiben

Daten können wie folgt leicht gelesen werden. Wenn df verstümmelt ist, geben Sie die Codierung ein.


df = pd.read_csv('data.csv') 

Wenn die ursprüngliche CSV-Datei keinen Header enthält, schreiben Sie wie folgt.


df = pd.read_csv('data.csv', header=None) 

Sie können wie folgt einfach ausgeben. Wenn es sich nur um einen Seriennummernindex handelt, wird er häufig nicht ausgegeben.


df.to_csv('data.csv', index=False)

Wenn Sie es nicht oft verwenden, aber keinen Header ausgeben möchten, schreiben Sie wie folgt.


df.to_csv('data.csv', header=False, index=False)

Recommended Posts

Pandas / DataFrame-Tipps für den praktischen Gebrauch
Untersuchung zur praktischen Anwendung von BlockChain
Tipps zum Zeichnen mehrerer Linien mit Pandas
[Pandas] GroupBy-Tipps
Python-Pandas: Suchen Sie mit regulären Ausdrücken nach DataFrame
[Zur Aufnahme] Pandas Memorandum
Verwendung von Pandas 2
Verwenden Sie DataFrame in Java
[Tipps] Meine Pandas-Notiz
Extrahieren Sie mit Pandas DataFrame N Proben für jede Gruppe
Verwenden Sie Mean mit DataFrame
Zusammenfassung der Vorverarbeitungsmethoden für Python-Anfänger (Pandas-Datenrahmen)
Probieren Sie grundlegende Operationen mit Pandas DataFrame auf Jupyter Notebook aus
Python-Anwendung: Pandas # 3: Dataframe
Tipps für Python-Anfänger, um das Scikit-Image-Beispiel für sich selbst zu verwenden 4 Verwenden Sie die GUI
Konvertieren Sie mit Python für .NET von Pandas DataFrame in System.Data.DataTable
Tipps für Python-Anfänger, um das Scikit-Image-Beispiel für sich selbst zu verwenden
Verwenden Sie PySide für die HDA-Benutzeroberfläche
Wie man Pandas Rolling benutzt
100 Pandas klopfen für Python-Anfänger
[Python + Selen] Tipps zum Scraping
~ Tipps für Python-Anfänger mit Liebe von Pythonista ③ ~
Exportieren Sie den Pandas-Datenrahmen nach Excel
Datenverarbeitungstipps mit Pandas
Tipps und Vorsichtsmaßnahmen bei der Datenanalyse
Verwenden Sie Modelle utils.Choices bequem TIPPS