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 | 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] |

