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

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: