Pandas Spickzettel für Data Science in Python

⚡ Intelligente Zusammenfassung

Pandas-Kurzübersichten fassen die am häufigsten verwendeten Befehle der Bibliothek auf einer Seite zusammen. Diese Referenz gruppiert sie nach Aufgaben: Installation, Erstellung von Series und DataFrames, Import von Dateien, Auswahl von Zeilen, Datenbereinigung, Anwendung von Funktionen und Export von Ergebnissen.

  • 🔘 Zwei Strukturen: Series enthält eine beschriftete Dimension, während DataFrame zwei Dimensionen mit unterschiedlichen Spaltentypen enthält.
  • ☑️ Alles importieren: read_csv, read_excel, read_sql, read_json und read_html laden Dateien in einen DataFrame.
  • Präzise Auswahl: loc wählt Zeilen anhand der Bezeichnung aus, iloc anhand der Position und boolesche Masken filtern Zeilen nach einer Bedingung.
  • 🧪 Zuverlässig reinigen: isnull, dropna, fillna, drop_duplicates und replace behandeln Lücken und doppelte Datensätze.
  • Schnell prüfen: shape, info, dtypes und describe fassen Struktur und Statistiken zusammen, bevor die Analyse beginnt.
  • ⚠️ Versionshinweis: pandas 3.0 aktiviert Copy-on-Write standardmäßig, daher führt eine verkettete Zuweisung zu einem Fehler.

Pandas Spickzettel für Data Science in Python

Was ist ein Pandas-Spickzettel?

Die Pandas-Bibliothek enthält Hunderte von Funktionen, doch nur ein kleiner Teil davon kommt im Arbeitsalltag zum Einsatz. Pandas-Spickzettel ist eine einseitige Referenz, die diese Befehle auflistet, gruppiert nach der Aufgabe, die sie ausführen.

Es behandelt die Strukturen von Series und DataFrames, den Import und Export von Dateien, die Auswahl und Sortierung von Daten, die Bereinigung von Werten und die Anwendung von Funktionen. Jeder Abschnitt enthält eine kurze Erklärung mit ausführbarem Code, sodass die Seite auch als Auffrischung Ihres Wissens dient. Datenanalysefähigkeiten.

👉 Laden Sie hier das PDF des Spickzettels herunter

Wie man Pandas installiert und importiert

Pandas wird mit zwei Befehlen eingerichtet, die beide in einem Terminal oder einer Anwendung ausgeführt werden. Jupyter Notizbuch Zelle.

Schritt 1) ​​Pandas installieren

Führen Sie dies einmal pro Umgebung aus; stellen Sie in einer Notebook-Zelle ein Ausrufezeichen davor.

pip install pandas

Schritt 2) Pandas importieren

Importieren Sie das Paket unter dem Alias pd, was in jedem der hier aufgeführten Beispiele vorausgesetzt wird.

import pandas as pd

Sie können nun Pandas-Funktionen aufrufen, um Daten zu bearbeiten, zu analysieren und zu bereinigen. Die folgenden Abschnitte listen diese Funktionen in der Reihenfolge auf, in der Sie sie üblicherweise verwenden.

Pandas-Datenstrukturen

Pandas verfügt über zwei Datenstrukturen. Modellreihe und DatenrahmenBeide sind beschriftete Arrays und können beliebige Datentypen aufnehmen. Der einzige Unterschied liegt in der Dimensionalität: Eine Series ist ein eindimensionales Array, ein DataFrame hingegen ein zweidimensionales Array, das aus Datentypen aufgebaut ist. NumPy darunter liegende Arrays.

Funktion Modellreihe Datenrahmen
Abmessungen Eindimensional Zweidimensional
Enthält Eine einzelne beschriftete Spalte Viele Spalten, gemischte Datentypen
Bauherr pd.Series() pd.DataFrame()

1. Serie

Es handelt sich um ein eindimensionales, beschriftetes Array. Es kann beliebige Datentypen aufnehmen. None wird zu einem fehlenden Wert.

s = pd.Series([2, -4, 6, 3, None], index=['A', 'B', 'C', 'D', 'E'])

2. Datenrahmen

Es handelt sich um ein zweidimensionales, beschriftetes Array. Es kann beliebige Datentypen und Spalten unterschiedlicher Größe aufnehmen.

data = {'RollNo' : [101, 102, 75, 99],
        'Name' : ['Mithlesh', 'Ram', 'Rudra', 'Mithlesh'],
        'Course' : ['Nodejs', None, 'Nodejs', 'JavaScript']
}
df = pd.DataFrame(data, columns=['RollNo', 'Name', 'Course'])
df.head()

Die untenstehende ausdruckbare Kurzanleitung fasst dieselben Befehle auf einer Seite zusammen.

Druckbare Pandas-Kurzübersicht mit den Befehlen für Series und DataFrame

Daten importieren

Pandas kann viele Dateitypen direkt in einen DataFrame einlesen. Jeder der folgenden Reader gibt einen DataFrame zurück. read_csv () wird am häufigsten verwendet.

# Import a CSV file pd
pd.read_csv(filename)

# Import a TSV file
pd.read_table(filename)

# Import a Excel file pd
pd.read_excel(filename)

# Import a SQL table/database
pd.read_sql(query, connection_object)

# Import a JSON file
pd.read_json(json_string)

# Import a HTML file
pd.read_html(url)

# From clipboard to read_table()
pd.read_clipboard()

# From dict
pd.DataFrame(dict)

Auswahl

Sie können Elemente anhand ihrer Position oder ihrer Indexbezeichnung auswählen. Die gleiche Syntax mit eckigen Klammern wählt Zeilen, Spalten und Abschnitte aus beiden Strukturen aus.

1. Serie

# Accessing one element from Series
s['D']

# Accessing all elements between two given indices
s['A':'C']

# Accessing all elements from starting till given index
s[:'C']

# Accessing all elements from given index till end
s['B':]

2. Datenrahmen

# Accessing one column df
df['Name']

# Accessing rows from after given row
df[1:]

# Accessing till before given row
df[:1]

# Accessing rows between two given rows
df[1:2]

Auswahl durch boolesche Indizierung und Einstellung

Arbeiten jederzeit weiterbearbeiten können. Jede Präsentation und jeder KI-Avatar, den Sie von Grund auf neu erstellen oder hochladen, iloc und iat für ganzzahlige Positionen und loc und at für Etiketten.

1. Nach Position

df.iloc[0, 1]

df.iat[0, 1]

2. Nach Etikett

df.loc[[0],  ['Name']]

3. Nach Beschriftung/Position

df.loc[2] # Both are same
df.iloc[2]

4. Boolesche Indizierung

Eine boolesche Maske behält nur Zeilen bei, in denen die Bedingung wahr ist. Das zweite Beispiel fügt den NOT-Operator hinzu. ~Es werden also auch Werte zurückgegeben, die nicht größer als 1 sind.

# Series s where value is > 1
s[(s > 0)]

# Series s where value is <-2 or >1
s[(s < -2) | ~(s > 1)]

# Use filter to adjust DataFrame
df[df['RollNo']>100]

# Set index a of Series s to 6
s['D'] = 10
s.head()

Datenreinigung

Für Python Mithilfe des Spickzettels zur Datenbereinigung können Sie die folgenden Vorgänge durchführen:

  • Spalten mithilfe der rename() Methode.
  • Werte mithilfe der at[] or iat[] Methode zum Zugriff auf und zur Änderung bestimmter Elemente.
  • Erstellen Sie eine Kopie einer Series oder eines DataFrames mithilfe der copy() Methode.
  • Prüfen Sie mithilfe der isnull() Methode und lassen Sie sie mit der dropna() Methode.
  • Prüfen Sie mithilfe der Funktion auf doppelte Werte. duplicated() Methode. Lassen Sie sie mit der drop_duplicates() Methode.
  • Ersetzen Sie NULL-Werte mithilfe der fillna() Methode mit einem bestimmten Wert.
  • Ersetzen Sie die Werte mithilfe der replace() Methode.
  • Werte sortieren mit der sort_values() Methode.
  • Rangwerte unter Verwendung der rank() Methode.
# Renaming columns
df.columns = ['a','b','c']
df.head()

# Mass renaming of columns
df = df.rename(columns={'RollNo': 'ID', 'Name': 'Student_Name'})

# Or use this edit in same DataFrame instead of in copy
df.rename(columns={'RollNo': 'ID', 'Name': 'Student_Name'}, inplace=True)
df.head()

# Counting duplicates in a column
df.duplicated(subset='Name')

# Removing entire row that has duplicate in given column
df.drop_duplicates(subset=['Name'])

# You can choose which one keep - by default is first
df.drop_duplicates(subset=['Name'], keep='last')

# Checks for Null Values
s.isnull()

# Checks for non-Null Values - reverse of isnull()
s.notnull()

# Checks for Null Values df
df.isnull()

# Checks for non-Null Values - reverse of isnull()
df.notnull()

# Drops all rows that contain null values
df.dropna()

# Drops all columns that contain null values
df.dropna(axis=1)

# Replaces all null values with 'Guru99'
df.fillna('Guru99')

# Replaces all null values with the mean
s.fillna(s.mean())

# Converts the datatype of the Series to float
s.astype(float)

# Replaces all values equal to 6 with 'Six'
s.replace(6,'Six')

# Replaces all 2 with 'Two' and 6 with 'Six'
s.replace([2,6],['Two','Six'])

# Drop from rows (axis=0)
s.drop(['B',  'D'])

# Drop from columns(axis=1)
df.drop('Name', axis=1)

# Sort by labels with axis
df.sort_index()

# Sort by values with axis
df.sort_values(by='RollNo')

# Ranking entries
df.rank()

# s1 is pointing to same Series as s
s1 = s

# s_copy of s, but not pointing same Series
s_copy = s.copy()

# df1 is pointing to same DataFrame as df
df1 = s

# df_copy of df, but not pointing same DataFrame
df_copy = df.copy()

Beachten Sie, dass s1 = s Es wird lediglich ein zweiter Name für dasselbe Objekt erstellt, niemals eine Kopie – deshalb copy() folgt ihm.

Abrufen von Informationen

Sie können diese Operationen ausführen, um Informationen abzurufen:

  • Verwenden Sie die shape Attribut, um die Anzahl der Zeilen und Spalten zu erhalten.
  • Verwenden Sie die head() or tail() Methode, um die ersten oder letzten Zeilen als Stichprobe zu erhalten.
  • Verwenden Sie die info(), describe() or dtypes Methode zur Ermittlung von Informationen über Datentyp, Anzahl, Mittelwert, Standardabweichung, Minimal- und Maximalwerte.
  • Verwenden Sie die count(), min(), max(), sum(), mean() und median() Methoden zur Gewinnung spezifischer statistischer Informationen zu Werten.
  • Verwenden Sie die loc[] Methode zum Abrufen einer Zeile.
  • Verwenden Sie die groupby() Methode zur Anwendung der GROUP BY-Funktion, um ähnliche Werte in einer Spalte eines DataFrames zu gruppieren.

1. Grundinformation

# Counting all elements in Series
len(s)

# Counting all elements in DataFrame
len(df)

# Prints number of rows and columns in dataframe
df.shape

# Prints first 10 rows by default, if no value set
df.head(10)

# Prints last 10 rows by default, if no value set
df.tail(10)

# For counting non-Null values column-wise
df.count()

# For range of index df
df.index

# For name of attributes/columns
df.columns

# Index, Data Type and Memory information
df.info()

# Datatypes of each column
df.dtypes

# Summary statistics for numerical columns
df.describe()

2. Zusammenfassung

# For adding all values column-wise
df.sum()

# For min column-wise
df.min()

# For max column-wise
df.max()

# For mean value in number column
df.mean()

# For median value in number column
df.median()

# Count non-Null values
s.count()

# Count non-Null values
df.count()

# Return Series of given column
df['Name'].tolist()

# Name of columns
df.columns.tolist()

# Creating subset
df[['Name', 'Course']]

# Return number of values in each group
df.groupby('Name').count()

Anwenden von Funktionen

apply() wendet eine Funktion auf jeden Wert an. Ausrichtungsregeln legen dann fest, was passiert, wenn zwei Objekte nur einen Teil ihres Index gemeinsam haben.

# Define function
f = lambda x: x*5

# Apply this function on given Series - For each value
s.apply(f)

# Apply this function on given DataFrame - For each value
df.apply(f)

1. Interner Datenabgleich

# NA values for indices that don't overlap
s2 = pd.Series([8, -1, 4],  index=['A',  'C',  'D'])
s + s2

2. Arithmetik Operationen mit Füllmethoden

# Fill values that don't overlap
s.add(s2, fill_value=0)

3. Filtern, sortieren und gruppieren nach

Diese Funktionen können zum Filtern, Sortieren und Gruppieren verwendet werden.ping Series- und DataFrame-Objekte.

# Filter rows where column is greater than 100
df[df['RollNo']>100]

# Filter rows where 70 < column < 101
df[(df['RollNo'] > 70) & (df['RollNo'] < 101)]

# Sorts values in ascending order
s.sort_values()

# Sorts values in descending order
s.sort_values(ascending=False)

# Sorts values by RollNo in ascending order
df.sort_values('RollNo')

# Sorts values by RollNo in descending order
df.sort_values('RollNo', ascending=False)

Daten exportieren

Jeder der unten aufgeführten Writer spiegelt einen Reader aus dem Importbereich wider, sodass eine Datei den Hin- und Rückweg ohne zusätzliche Tools durchlaufen kann.

# Export as a CSV file df
df.to_csv(filename)

# Export as a Excel file df
df.to_excel(filename)

# Export as a SQL table df
df.to_sql(table_name, connection_object)

# Export as a JSON file
df.to_json(filename)

# Export as a HTML table
df.to_html(filename)

# Write to the clipboard
df.to_clipboard()

Colab von Spickzettel

Jeder hier aufgeführte Befehl kann im zugehörigen Notebook ausgeführt werden: Pandas Spickzettel – Python für Data Science.ipynb.

Häufig gestellte Fragen

Copy-on-Write ist immer aktiviert, Zeichenketten verwenden den dedizierten Datentyp `str`, und verkettete Zuweisungen auf einer gefilterten Kopie führen zu einem `ChainedAssignmentError`. Weisen Sie stattdessen über `.loc` zu. Jeder Befehl hier wird weiterhin ausgeführt. Pandas 3.0.

pd.merge() verknüpft gemeinsame Schlüssel auf die gleiche Weise wie ein SQL `join` richtet die Daten am Index aus, `df.join()` stapelt Frames, und `pd.concat()` fügt sie zusammen. Verwenden Sie `merge` für Schlüssel und `concat` zum Anhängen.

df.pivot_table() wandelt lange Zeilen in ein breites aggregiertes Raster um, pd.melt() macht das rückgängig, und stack() oder unstack() verschieben eine Ebene zwischen Index und Spalten.

pd.to_datetime() konvertiert Text in datetime64, der .dt-Accessor gibt Jahr, Monat und Wochentag aus, und resample() aggregiert nach Tag, Woche oder Monat, sobald diese Spalte der Index ist.

Vektorisierte Operationen werden in kompiliertem C über das gesamte Array ausgeführt, während apply() einen Aufruf von Python Funktion einmal pro Zeile. Tauschenping Eine zeilenweise apply()-Anwendung auf einen vektorisierten Ausdruck ist oft zehnmal schneller.

KI-Assistenten ordnen einer einfachen Ergebnisbeschreibung konkrete Funktionsaufrufe zu und schlagen beispielsweise `groupby`, `merge` oder `pivot_table` mit den jeweils benötigten Argumenten vor. Überprüfen Sie den Vorschlag zunächst an einer kleinen Stichprobe.

Ja. GitHub-Copilot wandelt einen Kommentar wie group by course and count in funktionierenden Pandas-Code um JupyterBehandeln Sie die Ausgabe als Entwurf und überprüfen Sie die Zeilenanzahl.

Übergeben Sie dtype an read_csv ()Wiederholte Textspalten werden in Kategorien umgewandelt, Zahlen mit pd.to_numeric heruntergerechnet und die Daten mithilfe von chunksize in Teilen geladen. df.info() gibt die tatsächliche Speichergröße an.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: