Python Pandas-Tutorial: DataFrame, Datumsbereich, Verwendung von Pandas
Was ist Pandas Python?
Pandas ist eine Open-Source-Bibliothek, die Ihnen die Datenmanipulation und -analyse ermöglicht in PythonPandas Python Die Bibliothek bietet Datenmanipulation und Datenoperationen für numerische Tabellen und Zeitreihen. Pandas bietet eine einfache Möglichkeit, Daten zu erstellen, zu manipulieren und zu bearbeiten. Sie basiert auf NumPy, d. h. sie benötigt NumPy zum Betrieb.
Warum Pandas verwenden?
Datenwissenschaftler nutzen Pandas in Python für seine folgenden Vorteile:
- Behandelt fehlende Daten problemlos
- Es verwendet Reihe für eindimensionale Datenstruktur und DataFrame für mehrdimensionale Datenstruktur
- Es bietet eine effiziente Möglichkeit, die Daten aufzuteilen
- Es bietet eine flexible Möglichkeit, die Daten zusammenzuführen, zu verketten oder umzuformen
- Es enthält ein leistungsstarkes Zeitreihen-Tool, mit dem Sie arbeiten können
Kurz gesagt, Pandas ist eine nützliche Bibliothek in Datenanalyse. Es kann zur Datenmanipulation und -analyse verwendet werden. Pandas bietet leistungsstarke und benutzerfreundliche Datenstrukturen sowie die Möglichkeit, schnell Operationen an diesen Strukturen durchzuführen.
Wie installiere ich Pandas?
Jetzt hier Python Pandas-Tutorial, wir werden lernen, wie man Pandas installiert in Python.
Informationen zur Installation der Pandas-Bibliothek finden Sie in unserem Tutorial So installieren Sie TensorFlow. Pandas ist standardmäßig installiert. Im entfernten Fall sind Pandas nicht installiert.
Sie können Pandas installieren mit:
- Anaconda: Conda install -c Anaconda Pandas
- In Jupyter Notizbuch:
import sys !conda install --yes --prefix {sys.prefix} pandas
Was ist ein Pandas-DataFrame?
Pandas DataFrame ist ein zweidimensionales Array mit beschrifteter Datenstruktur und verschiedenen Spaltentypen. Ein DataFrame ist eine Standardmethode zum Speichern von Daten in einem Tabellenformat mit Zeilen zum Speichern der Informationen und Spalten zum Benennen der Informationen. Der Preis kann beispielsweise der Name einer Spalte sein und 2,3,4 können die Preiswerte sein.
Data Frame ist bei Statistikern und anderen Datenanwendern gut bekannt.
Unten ein Bild eines Pandas-Datenrahmens:
Was ist eine Serie?
Eine Reihe ist eine eindimensionale Datenstruktur. Es kann eine beliebige Datenstruktur wie Ganzzahl, Gleitkommazahl und Zeichenfolge haben. Dies ist nützlich, wenn Sie eine Berechnung durchführen oder ein eindimensionales Array zurückgeben möchten. Eine Reihe kann per Definition nicht mehrere Spalten haben. Im letzteren Fall verwenden Sie bitte die Datenrahmenstruktur.
Python Die Pandas-Serie hat folgende Parameter:
- Daten: können eine Liste, ein Wörterbuch oder ein Skalarwert sein
pd.Series([1., 2., 3.])
0 1.0 1 2.0 2 3.0 dtype: float64
Sie können den Index mit Index hinzufügen. Es hilft, die Zeilen zu benennen. Die Länge sollte der Größe der Spalte entsprechen
pd.Series([1., 2., 3.], index=['a', 'b', 'c'])
Unten erstellen Sie eine Pandas-Reihe mit einem fehlenden Wert für die dritten Zeilen. Beachten Sie, dass Werte in fehlen Python sind mit „NaN“ gekennzeichnet. Sie können Numpy verwenden, um den fehlenden Wert: np.nan künstlich zu erstellen
pd.Series([1,2,np.nan])
Ausgang
0 1.0 1 2.0 2 NaN dtype: float64
Erstellen Sie einen Pandas-DataFrame
In diesem Pandas DataFrame-Tutorial lernen wir nun, wie man Python Pandas-Datenrahmen:
Sie können ein Numpy-Array mit pd.Data frame() in einen Pandas-Datenrahmen konvertieren. Auch das Gegenteil ist möglich. Um einen Pandas-Datenrahmen in ein Array zu konvertieren, können Sie np.array() verwenden.
## Numpy to pandas import numpy as np h = [[1,2],[3,4]] df_h = pd.DataFrame(h) print('Data Frame:', df_h) ## Pandas to numpy df_h_n = np.array(df_h) print('Numpy array:', df_h_n) Data Frame: 0 1 0 1 2 1 3 4 Numpy array: [[1 2] [3 4]]
Sie können auch ein Wörterbuch verwenden, um einen Pandas-Datenrahmen zu erstellen.
dic = {'Name': ["John", "Smith"], 'Age': [30, 40]} pd.DataFrame(data=dic)
Alter | Name | |
---|---|---|
0 | 30 | Peter |
1 | 40 | Smith |
Daten zur Pandas-Reichweite
Pandas haben eine praktische API, um einen Datumsbereich zu erstellen. Lernen wir mit Python Pandas-Beispiele:
pd.data_range(Datum, Zeitraum, Häufigkeit):
- Der erste Parameter ist das Startdatum
- Der zweite Parameter ist die Anzahl der Perioden (optional, wenn das Enddatum angegeben ist)
- Der letzte Parameter ist die Häufigkeit: Tag: „D“, Monat: „M“ und Jahr: „Y“.
## Create date # Days dates_d = pd.date_range('20300101', periods=6, freq='D') print('Day:', dates_d)
Ausgang
Day: DatetimeIndex(['2030-01-01', '2030-01-02', '2030-01-03', '2030-01-04', '2030-01-05', '2030-01-06'], dtype='datetime64[ns]', freq='D')
# Months dates_m = pd.date_range('20300101', periods=6, freq='M') print('Month:', dates_m)
Ausgang
Month: DatetimeIndex(['2030-01-31', '2030-02-28', '2030-03-31', '2030-04-30','2030-05-31', '2030-06-30'], dtype='datetime64[ns]', freq='M')
Daten prüfen
Sie können den Kopf oder das Ende des Datensatzes mit head() oder tail() vor dem Namen des Panda-Datenrahmens überprüfen, wie im folgenden Pandas-Beispiel gezeigt:
Schritt 1) Erstellen Sie eine zufällige Sequenz mit numpig. Die Sequenz besteht aus 4 Spalten und 6 Zeilen
random = np.random.randn(6,4)
Schritt 2) Anschließend erstellen Sie mit Pandas einen Datenrahmen.
Verwenden Sie „dates_m“ als Index für den Datenrahmen. Das bedeutet, dass jede Zeile einen „Namen“ oder einen Index erhält, der einem Datum entspricht.
Abschließend geben Sie den 4 Spalten mit den Argumentspalten einen Namen
# Create data with date df = pd.DataFrame(random, index=dates_m, columns=list('ABCD'))
Schritt 3) Verwendung der Kopffunktion
df.head(3)
A | B | C | D | |
---|---|---|---|---|
2030-01-31 | 1.139433 | 1.318510 | -0.181334 | 1.615822 |
2030-02-28 | -0.081995 | -0.063582 | 0.857751 | -0.527374 |
2030-03-31 | -0.519179 | 0.080984 | -1.454334 | 1.314947 |
Schritt 4) Verwenden der Schwanzfunktion
df.tail(3)
A | B | C | D | |
---|---|---|---|---|
2030-04-30 | -0.685448 | -0.011736 | 0.622172 | 0.104993 |
2030-05-31 | -0.935888 | -0.731787 | -0.558729 | 0.768774 |
2030-06-30 | 1.096981 | 0.949180 | -0.196901 | -0.471556 |
Schritt 5) Eine hervorragende Methode, um einen Hinweis auf die Daten zu erhalten, ist die Verwendung von beschreiben(). Es liefert die Anzahl, den Mittelwert, den Standardwert, das Minimum, das Maximum und das Perzentil des Datensatzes.
df.describe()
A | B | C | D | |
---|---|---|---|---|
zählen | 6.000000 | 6.000000 | 6.000000 | 6.000000 |
bedeuten | 0.002317 | 0.256928 | -0.151896 | 0.467601 |
std | 0.908145 | 0.746939 | 0.834664 | 0.908910 |
Min. | -0.935888 | -0.731787 | -1.454334 | -0.527374 |
25% | -0.643880 | -0.050621 | -0.468272 | -0.327419 |
50% | -0.300587 | 0.034624 | -0.189118 | 0.436883 |
75% | 0.802237 | 0.732131 | 0.421296 | 1.178404 |
max | 1.139433 | 1.318510 | 0.857751 | 1.615822 |
Slice-Daten
Der letzte Punkt dieser Python Im Pandas-Tutorial erfahren Sie, wie Sie einen Pandas-Datenrahmen aufteilen.
Sie können den Spaltennamen verwenden, um Daten in einer bestimmten Spalte zu extrahieren, wie im folgenden Pandas-Beispiel gezeigt:
## Slice ### Using name df['A'] 2030-01-31 -0.168655 2030-02-28 0.689585 2030-03-31 0.767534 2030-04-30 0.557299 2030-05-31 -1.547836 2030-06-30 0.511551 Freq: M, Name: A, dtype: float64
Um mehrere Spalten auszuwählen, müssen Sie die doppelte Klammer [[..,..]] verwenden.
Das erste Klammerpaar bedeutet, dass Sie Spalten auswählen möchten, das zweite Klammerpaar gibt an, welche Spalten Sie zurückgeben möchten.
df[['A', 'B']].
A | B | |
---|---|---|
2030-01-31 | -0.168655 | 0.587590 |
2030-02-28 | 0.689585 | 0.998266 |
2030-03-31 | 0.767534 | -0.940617 |
2030-04-30 | 0.557299 | 0.507350 |
2030-05-31 | -1.547836 | 1.276558 |
2030-06-30 | 0.511551 | 1.572085 |
Sie können die Zeilen aufteilen mit:
Der folgende Code gibt die ersten drei Zeilen zurück
### using a slice for row df[0:3]
A | B | C | D | |
---|---|---|---|---|
2030-01-31 | -0.168655 | 0.587590 | 0.572301 | -0.031827 |
2030-02-28 | 0.689585 | 0.998266 | 1.164690 | 0.475975 |
2030-03-31 | 0.767534 | -0.940617 | 0.227255 | -0.341532 |
Mit der Funktion loc können Spalten nach Namen ausgewählt werden. Dabei stehen die Werte vor dem Komma wie üblich für die Zeilen und danach für die Spalten. Um mehrere Spalten auszuwählen, müssen Sie die Klammern verwenden.
## Multi col df.loc[:,['A','B']]
A | B | |
---|---|---|
2030-01-31 | -0.168655 | 0.587590 |
2030-02-28 | 0.689585 | 0.998266 |
2030-03-31 | 0.767534 | -0.940617 |
2030-04-30 | 0.557299 | 0.507350 |
2030-05-31 | -1.547836 | 1.276558 |
2030-06-30 | 0.511551 | 1.572085 |
Es gibt eine andere Methode zum Auswählen mehrerer Zeilen und Spalten in Pandas. Sie können iloc[] verwenden. Diese Methode verwendet den Index anstelle des Spaltennamens. Der folgende Code gibt denselben Datenrahmen wie oben zurück
df.iloc[:, :2]
A | B | |
---|---|---|
2030-01-31 | -0.168655 | 0.587590 |
2030-02-28 | 0.689585 | 0.998266 |
2030-03-31 | 0.767534 | -0.940617 |
2030-04-30 | 0.557299 | 0.507350 |
2030-05-31 | -1.547836 | 1.276558 |
2030-06-30 | 0.511551 | 1.572085 |
Löschen Sie eine Spalte
Sie können Spalten mit pd.drop() löschen.
df.drop(columns=['A', 'C'])
B | D | |
---|---|---|
2030-01-31 | 0.587590 | -0.031827 |
2030-02-28 | 0.998266 | 0.475975 |
2030-03-31 | -0.940617 | -0.341532 |
2030-04-30 | 0.507350 | -0.296035 |
2030-05-31 | 1.276558 | 0.523017 |
2030-06-30 | 1.572085 | -0.594772 |
Verkettung
Sie können zwei DataFrames in Pandas verketten. Sie können pd.concat() verwenden
Zunächst müssen Sie zwei DataFrames erstellen. Soweit so gut, Sie sind bereits mit der Erstellung von Datenrahmen vertraut
import numpy as np df1 = pd.DataFrame({'name': ['John', 'Smith','Paul'], 'Age': ['25', '30', '50']}, index=[0, 1, 2]) df2 = pd.DataFrame({'name': ['Adam', 'Smith' ], 'Age': ['26', '11']}, index=[3, 4])
Abschließend verketten Sie die beiden DataFrames
df_concat = pd.concat([df1,df2]) df_concat
Alter | Name | |
---|---|---|
0 | 25 | Peter |
1 | 30 | Smith |
2 | 50 | Alexander |
3 | 26 | Marcus |
4 | 11 | Smith |
Drop_duplicates
Wenn ein Datensatz doppelte Informationen enthalten kann, ist „drop_duplicates“ eine einfache Möglichkeit, doppelte Zeilen auszuschließen. Sie können sehen, dass „df_concat“ eine doppelte Beobachtung hat, „Smith“ erscheint zweimal in der Spalte „Name“.
df_concat.drop_duplicates('name')
Alter | Name | |
---|---|---|
0 | 25 | Peter |
1 | 30 | Smith |
2 | 50 | Alexander |
3 | 26 | Marcus |
Werte sortieren
Sie können Werte mit sort_values sortieren
df_concat.sort_values('Age')
Alter | Name | |
---|---|---|
4 | 11 | Smith |
0 | 25 | Peter |
3 | 26 | Marcus |
1 | 30 | Smith |
2 | 50 | Alexander |
Umbenennen: Indexänderung
Sie können rename verwenden, um eine Spalte in Pandas umzubenennen. Der erste Wert ist der aktuelle Spaltenname und der zweite Wert ist der neue Spaltenname.
df_concat.rename(columns={"name": "Surname", "Age": "Age_ppl"})
Alter_Person | Familien-oder Nachname | |
---|---|---|
0 | 25 | Peter |
1 | 30 | Smith |
2 | 50 | Alexander |
3 | 26 | Marcus |
4 | 11 | Smith |
Zusammenfassung
Nachfolgend finden Sie eine Zusammenfassung der nützlichsten Methode für die Datenwissenschaft mit Pandas
Daten importieren | read_csv |
---|---|
Serien erstellen | Modellreihe |
Datenrahmen erstellen | Datenrahmen |
Datumsbereich erstellen | Datumsbereich |
Kopf zurück | ganzer |
Schwanz zurück | Schwanz |
Beschreiben | beschreiben |
Slice mit Namen | Datenname['Spaltenname'] |
Mit Reihen schneiden | Datenname[0:5] |