Pandas Häufige Funktionen
Im Folgenden werden einige häufig verwendete Pandas-Funktionen und Anwendungsbeispiele aufgeführt:
Daten lesen
| Funktion | Beschreibung |
|---|---|
| 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 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
| Funktion | Beschreibung |
|---|---|
| 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.shape | Zeigt 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
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))
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
| Funktion | Beschreibung |
|---|---|
| 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()
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
| Funktion | Beschreibung |
|---|---|
| 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)
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
| Funktion | Beschreibung |
|---|---|
| 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()
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
| Funktion | Beschreibung |
|---|---|
| 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')
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
| Funktion | Beschreibung |
|---|---|
| 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')
df = pd.concat([df1, df2])
# Zwei Dataframes anhand angegebener Spalten zusammenführen
df = pd.merge(df1, df2, on='column_name')
Datenauswahl und Filterung
| Funktion | Beschreibung |
|---|---|
| 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
| Funktion | Beschreibung |
|---|---|
| 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
}
]
{
"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()
# 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