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:

Pandas DataFrame

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]