Pandas Häufige Funktionen

Im Folgenden werden einige häufig verwendete Pandas-Funktionen und Anwendungsbeispiele aufgeführt:

Daten lesen

FunktionBeschreibung
pd.read_csv(filename)CSV-Dateien lesen;
pd.read_excel(filename)Excel-Dateien lesen;
pd.read_sql(query, connection_object)Daten aus SQL-Datenbank lesen;
pd.read_json(json_string)Daten aus JSON-String lesen;
pd.read_html(url)Daten aus HTML-Seiten lesen.

Beispiel

import pandas as pd

# Daten aus CSV-Datei lesen
df = pd.read_csv('data.csv')

# Daten aus Excel-Datei lesen
df = pd.read_excel('data.xlsx')

# Daten aus SQL-Datenbank lesen
import sqlite3
conn = sqlite3.connect('database.db')
df = pd.read_sql('SELECT * FROM table_name', conn)

# Daten aus JSON-Zeichenkette lesen
json_string = '{"name": "John", "age": 30, "city": "New York"}'
df = pd.read_json(json_string)

# Daten aus HTML-Seite lesen
url = 'https://www.example.com'
dfs = pd.read_html(url)
df = dfs[0] # Erstes DataFrame auswählen

Daten anzeigen

FunktionBeschreibung
df.head(n)Zeigt die ersten n Zeilen der Daten an;
df.tail(n)Zeigt die letzten n Zeilen der Daten an;
df.info()Zeigt Dateninformationen an, einschließlich Spaltennamen, Datentypen, fehlenden Werten usw.;
df.describe()Zeigt grundlegende statistische Informationen zu den Daten an, einschließlich Mittelwert, Varianz, Maximum, Minimum usw.;
df.shapeZeigt die Anzahl der Zeilen und Spalten der Daten an.

Beispiel

# Die ersten fünf Datenzeilen anzeigen
df.head()

# Zeigt die letzten fünf Zeilen der Daten an
df.tail()

# Dateninformationen anzeigen
df.info()

# Grundlegende statistische Informationen anzeigen
df.describe()

# Anzahl der Zeilen und Spalten der Daten anzeigen
df.shape

Beispiel

import pandas as pd

data = [
    {"name": "Google", "likes": 25, "url": "https://www.google.com"},
    {"name": "Example", "likes": 30, "url": "https://www.example.com"},
    {"name": "Taobao", "likes": 35, "url": "https://www.taobao.com"}
]

df = pd.DataFrame(data)
# Die ersten beiden Datenzeilen anzeigen
print(df.head(2))
# Die letzte Datenzeile anzeigen
print(df.tail(1))

Die Ausgabe der obigen Beispiele ist:

     name  likes                     url
0  Google     25  https://www.google.com
1  Example     30  https://www.example.com
     name  likes                     url
2  Taobao     35  https://www.taobao.com

Datenbereinigung

FunktionBeschreibung
df.dropna()Zeilen oder Spalten mit fehlenden Werten löschen;
df.fillna(value)Fehlende Werte durch angegebene Werte ersetzen;
df.replace(old_value, new_value)Angegebene Werte durch neue Werte ersetzen;
df.duplicated()Prüfen, ob doppelte Daten vorhanden sind;
df.drop_duplicates()Doppelte Daten entfernen.

Beispiel

# Zeilen oder Spalten mit fehlenden Werten löschen
df.dropna()

# Fehlende Werte durch angegebene Werte ersetzen
df.fillna(0)

# Angegebene Werte durch neue Werte ersetzen
df.replace('old_value', 'new_value')

# Prüfen, ob doppelte Daten vorhanden sind
df.duplicated()

# Doppelte Daten entfernen
df.drop_duplicates()

Datenauswahl und Slicing

FunktionBeschreibung
df[column_name]Angegebene Spalten auswählen;
df.loc[row_index, column_name]Daten anhand des Labels auswählen;
df.iloc[row_index, column_index]Daten anhand der Position auswählen;
df.ix[row_index, column_name]Daten anhand von Label oder Position auswählen;
df.filter(items=[column_name1, column_name2])Angegebene Spalten auswählen;
df.filter(regex='regex')Spalten auswählen, deren Spaltennamen mit einem regulären Ausdruck übereinstimmen;
df.sample(n)Wählt zufällig n Datenzeilen aus.

Beispiel

# Angegebene Spalten auswählen
df['column_name']

# Daten nach Label auswählen
df.loc[row_index, column_name]

# Daten nach Position auswählen
df.iloc[row_index, column_index]

# Daten nach Label oder Position auswählen
df.ix[row_index, column_name]

# Angegebene Spalten auswählen
df.filter(items=['column_name1', 'column_name2'])

# Spalten auswählen, deren Spaltennamen einem regulären Ausdruck entsprechen
df.filter(regex='regex')

# Zufällige Auswahl von n Datenzeilen
df.sample(n=5)

Sortieren von Daten

FunktionBeschreibung
df.sort_values(column_name)Nach den Werten einer angegebenen Spalte sortieren;
df.sort_values([column_name1, column_name2], ascending=[True, False])Nach den Werten mehrerer Spalten sortieren;
df.sort_index()Nach Index sortieren.

Beispiel

# Nach den Werten einer angegebenen Spalte sortieren
df.sort_values('column_name')

# Nach den Werten mehrerer Spalten sortieren
df.sort_values(['column_name1', 'column_name2'], ascending=[True, False])

# Nach Index sortieren
df.sort_index()

Daten gruppieren und aggregieren

FunktionBeschreibung
df.groupby(column_name)Nach einer angegebenen Spalte gruppieren;
df.aggregate(function_name)Aggregationsoperationen auf den gruppierten Daten ausführen;
df.pivot_table(values, index, columns, aggfunc)Eine Pivot-Tabelle erstellen.

Beispiel

# Nach einer angegebenen Spalte gruppieren
df.groupby('column_name')

# Aggregationsoperationen für die gruppierten Daten ausführen
df.aggregate('function_name')

# Eine Pivot-Tabelle erstellen
df.pivot_table(values='value', index='index_column', columns='column_name', aggfunc='function_name')

Datenzusammenführung

FunktionBeschreibung
pd.concat([df1, df2])Mehrere Dataframes nach Zeilen oder Spalten zusammenführen;
pd.merge(df1, df2, on=column_name)Zwei Dataframes nach angegebenen Spalten zusammenführen.

Beispiel

# Mehrere Dataframes nach Zeilen oder Spalten zusammenführen
df = pd.concat([df1, df2])

# Zwei Dataframes anhand angegebener Spalten zusammenführen
df = pd.merge(df1, df2, on='column_name')

Datenauswahl und Filterung

FunktionBeschreibung
df.loc[row_indexer, column_indexer]Zeilen und Spalten anhand von Labels auswählen.
df.iloc[row_indexer, column_indexer]Zeilen und Spalten anhand der Position auswählen.
df[df['column_name'] > value]Zeilen in einer Spalte auswählen, die eine Bedingung erfüllen.
df.query('column_name > value')Verwenden Sie einen String-Ausdruck, um Zeilen in einer Spalte auszuwählen, die eine Bedingung erfüllen.

Datenstatistiken und Beschreibung

FunktionBeschreibung
df.describe()Berechnen Sie grundlegende statistische Informationen wie Mittelwert, Standardabweichung, Minimum, Maximum usw.
df.mean()Berechnen Sie den Mittelwert jeder Spalte.
df.median()Berechnen Sie den Median jeder Spalte.
df.mode()Berechnen Sie den Modus jeder Spalte.
df.count()Berechnen Sie die Anzahl der nicht fehlenden Werte in jeder Spalte.

Beispiel

Angenommen, wir haben die folgenden JSON-Daten, die in derdata.json-Datei gespeichert sind:

data.json-Datei

[
  {
    "name": "Alice",
    "age": 25,
    "gender": "female",
    "score": 80
  },
  {
    "name": "Bob",
    "age": null,
    "gender": "male",
    "score": 90
  },
  {
    "name": "Charlie",
    "age": 30,
    "gender": "male",
    "score": null
  },
  {
    "name": "David",
    "age": 35,
    "gender": "male",
    "score": 70
  }
]

Wir können Pandas verwenden, um JSON-Daten zu lesen und Operationen wie Datenbereinigung und -verarbeitung, Datenauswahl und -filterung, Datenstatistik und -beschreibung durchzuführen, wie folgt:

Beispiel

import pandas as pd

# JSON-Daten lesen
df = pd.read_json('data.json')

# Fehlende Werte entfernen
df = df.dropna()

# Fehlende Werte mit angegebenen Werten füllen
df = df.fillna({'age': 0, 'score': 0})

# Spaltennamen umbenennen
df = df.rename(columns={'name': 'Name', 'age': 'age', 'gender': 'Gender', 'score': 'Score'})

# Nach Score sortieren
df = df.sort_values(by='Score', ascending=False)

# Nach Geschlecht gruppieren und Durchschnittsalter und durchschnittlichen Score berechnen
grouped = df.groupby('Gender').agg({'age': 'mean', 'Score': 'mean'})

# Zeilen auswählen, bei denen der Score größer oder gleich 90 ist, und nur die Spalten Name und Score behalten
df = df.loc[df['Score'] >= 90, ['Name', 'Score']]

# Grundlegende statistische Informationen für jede Spalte berechnen
stats = df.describe()

# Berechne den Mittelwert jeder Spalte
mean = df.mean()

# Den Median jeder Spalte berechnen
median = df.median()

# Den Modus jeder Spalte berechnen
mode = df.mode()

# Die Anzahl der nicht fehlenden Werte in jeder Spalte berechnen
count = df.count()

Das Ausgabeergebnis ist wie folgt:

# df
   姓名  年龄 性别  成绩
1  Bob   0  male  90

# grouped
             年龄  成绩
性别                
female  25.000000  80
male    27.500000  80

# stats
         成绩
count   1.0
mean   90.0
std     NaN
min    90.0
25%    90.0
50%    90.0
75%    90.0
max    90.0

# mean
成绩    90.0
dtype: float64

# median
成绩    90.0
dtype: float64

# mode
    姓名    成绩
0  Bob  90.0

# count
姓名    1
成绩    1
dtype: int64
Andere Erweiterungen