Python Pandas - DataFrame
Ein Datenrahmen ist eine zweidimensionale Datenstruktur, dh Daten werden in Zeilen und Spalten tabellarisch ausgerichtet.
Funktionen von DataFrame
- Potenziell sind Spalten unterschiedlicher Art
- Größe - veränderlich
- Beschriftete Achsen (Zeilen und Spalten)
- Kann arithmetische Operationen für Zeilen und Spalten ausführen
Struktur
Nehmen wir an, wir erstellen einen Datenrahmen mit den Daten des Schülers.
Sie können sich das als SQL-Tabelle oder als Darstellung von Tabellenkalkulationsdaten vorstellen.
pandas.DataFrame
Ein Pandas DataFrame kann mit dem folgenden Konstruktor erstellt werden:
pandas.DataFrame( data, index, columns, dtype, copy)
Die Parameter des Konstruktors sind wie folgt:
Sr.Nr. | Parameter & Beschreibung |
---|---|
1 |
data Daten haben verschiedene Formen wie ndarray, Serien, Karten, Listen, Diktate, Konstanten und auch einen anderen DataFrame. |
2 |
index Für die Zeilenbeschriftungen lautet der Index, der für den resultierenden Frame verwendet werden soll, Optional Standard np.arange (n), wenn kein Index übergeben wird. |
3 |
columns Für Spaltenbeschriftungen lautet die optionale Standardsyntax - np.arange (n). Dies gilt nur, wenn kein Index übergeben wird. |
4 |
dtype Datentyp jeder Spalte. |
5 |
copy Dieser Befehl (oder was auch immer) wird zum Kopieren von Daten verwendet, wenn der Standardwert False ist. |
Erstellen Sie einen DataFrame
Ein Pandas DataFrame kann mit verschiedenen Eingaben wie - erstellt werden
- Lists
- dict
- Series
- Numpy ndarrays
- Ein weiterer DataFrame
In den folgenden Abschnitten dieses Kapitels erfahren Sie, wie Sie mit diesen Eingaben einen DataFrame erstellen.
Erstellen Sie einen leeren Datenrahmen
Ein grundlegender DataFrame, der erstellt werden kann, ist ein leerer Dataframe.
Beispiel
#import the pandas library and aliasing as pd
import pandas as pd
df = pd.DataFrame()
print df
Es ist output ist wie folgt -
Empty DataFrame
Columns: []
Index: []
Erstellen Sie einen DataFrame aus Listen
Der DataFrame kann mithilfe einer einzelnen Liste oder einer Liste von Listen erstellt werden.
Beispiel 1
import pandas as pd
data = [1,2,3,4,5]
df = pd.DataFrame(data)
print df
Es ist output ist wie folgt -
0
0 1
1 2
2 3
3 4
4 5
Beispiel 2
import pandas as pd
data = [['Alex',10],['Bob',12],['Clarke',13]]
df = pd.DataFrame(data,columns=['Name','Age'])
print df
Es ist output ist wie folgt -
Name Age
0 Alex 10
1 Bob 12
2 Clarke 13
Beispiel 3
import pandas as pd
data = [['Alex',10],['Bob',12],['Clarke',13]]
df = pd.DataFrame(data,columns=['Name','Age'],dtype=float)
print df
Es ist output ist wie folgt -
Name Age
0 Alex 10.0
1 Bob 12.0
2 Clarke 13.0
Note - Beobachten Sie, die dtype Der Parameter ändert den Typ der Altersspalte in Gleitkomma.
Erstellen Sie einen DataFrame aus Dict of ndarrays / Lists
All die ndarraysmuss gleich lang sein. Wenn der Index übergeben wird, sollte die Länge des Index der Länge der Arrays entsprechen.
Wenn kein Index übergeben wird, ist der Index standardmäßig der Bereich (n), wobei n ist die Array-Länge.
Beispiel 1
import pandas as pd
data = {'Name':['Tom', 'Jack', 'Steve', 'Ricky'],'Age':[28,34,29,42]}
df = pd.DataFrame(data)
print df
Es ist output ist wie folgt -
Age Name
0 28 Tom
1 34 Jack
2 29 Steve
3 42 Ricky
Note- Beachten Sie die Werte 0,1,2,3. Sie sind der Standardindex, der jedem anhand des Funktionsbereichs (n) zugewiesen wird.
Beispiel 2
Lassen Sie uns nun einen indizierten DataFrame mithilfe von Arrays erstellen.
import pandas as pd
data = {'Name':['Tom', 'Jack', 'Steve', 'Ricky'],'Age':[28,34,29,42]}
df = pd.DataFrame(data, index=['rank1','rank2','rank3','rank4'])
print df
Es ist output ist wie folgt -
Age Name
rank1 28 Tom
rank2 34 Jack
rank3 29 Steve
rank4 42 Ricky
Note - Beobachten Sie, die index Der Parameter weist jeder Zeile einen Index zu.
Erstellen Sie einen DataFrame aus der Liste der Dicts
Eine Liste von Wörterbüchern kann als Eingabedaten übergeben werden, um einen DataFrame zu erstellen. Die Wörterbuchschlüssel werden standardmäßig als Spaltennamen verwendet.
Beispiel 1
Das folgende Beispiel zeigt, wie Sie einen DataFrame erstellen, indem Sie eine Liste von Wörterbüchern übergeben.
import pandas as pd
data = [{'a': 1, 'b': 2},{'a': 5, 'b': 10, 'c': 20}]
df = pd.DataFrame(data)
print df
Es ist output ist wie folgt -
a b c
0 1 2 NaN
1 5 10 20.0
Note - Beachten Sie, dass NaN (Not a Number) in fehlenden Bereichen angehängt wird.
Beispiel 2
Das folgende Beispiel zeigt, wie Sie einen DataFrame erstellen, indem Sie eine Liste der Wörterbücher und der Zeilenindizes übergeben.
import pandas as pd
data = [{'a': 1, 'b': 2},{'a': 5, 'b': 10, 'c': 20}]
df = pd.DataFrame(data, index=['first', 'second'])
print df
Es ist output ist wie folgt -
a b c
first 1 2 NaN
second 5 10 20.0
Beispiel 3
Das folgende Beispiel zeigt, wie Sie einen DataFrame mit einer Liste von Wörterbüchern, Zeilenindizes und Spaltenindizes erstellen.
import pandas as pd
data = [{'a': 1, 'b': 2},{'a': 5, 'b': 10, 'c': 20}]
#With two column indices, values same as dictionary keys
df1 = pd.DataFrame(data, index=['first', 'second'], columns=['a', 'b'])
#With two column indices with one index with other name
df2 = pd.DataFrame(data, index=['first', 'second'], columns=['a', 'b1'])
print df1
print df2
Es ist output ist wie folgt -
#df1 output
a b
first 1 2
second 5 10
#df2 output
a b1
first 1 NaN
second 5 NaN
Note- Beachten Sie, dass df2 DataFrame mit einem anderen Spaltenindex als dem Wörterbuchschlüssel erstellt wird. Daher wurden die NaNs an Ort und Stelle angehängt. Während df1 mit Spaltenindizes wie Wörterbuchschlüssel erstellt wird, wird NaN angehängt.
Erstellen Sie einen DataFrame aus Dict of Series
Das Wörterbuch der Serien kann übergeben werden, um einen DataFrame zu bilden. Der resultierende Index ist die Vereinigung aller übergebenen Serienindizes.
Beispiel
import pandas as pd
d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}
df = pd.DataFrame(d)
print df
Es ist output ist wie folgt -
one two
a 1.0 1
b 2.0 2
c 3.0 3
d NaN 4
Note - Beachten Sie, dass es für die erste Serie kein Etikett gibt ‘d’ bestanden, aber im Ergebnis für die d Etikett, NaN wird mit NaN angehängt.
Lassen Sie uns jetzt verstehen column selection, addition, und deletion durch Beispiele.
Spaltenauswahl
Wir werden dies verstehen, indem wir eine Spalte aus dem DataFrame auswählen.
Beispiel
import pandas as pd
d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}
df = pd.DataFrame(d)
print df ['one']
Es ist output ist wie folgt -
a 1.0
b 2.0
c 3.0
d NaN
Name: one, dtype: float64
Spaltenaddition
Wir werden dies verstehen, indem wir einem vorhandenen Datenrahmen eine neue Spalte hinzufügen.
Beispiel
import pandas as pd
d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}
df = pd.DataFrame(d)
# Adding a new column to an existing DataFrame object with column label by passing new series
print ("Adding a new column by passing as Series:")
df['three']=pd.Series([10,20,30],index=['a','b','c'])
print df
print ("Adding a new column using the existing columns in DataFrame:")
df['four']=df['one']+df['three']
print df
Es ist output ist wie folgt -
Adding a new column by passing as Series:
one two three
a 1.0 1 10.0
b 2.0 2 20.0
c 3.0 3 30.0
d NaN 4 NaN
Adding a new column using the existing columns in DataFrame:
one two three four
a 1.0 1 10.0 11.0
b 2.0 2 20.0 22.0
c 3.0 3 30.0 33.0
d NaN 4 NaN NaN
Spalten löschen
Spalten können gelöscht oder gelöscht werden. Nehmen wir ein Beispiel, um zu verstehen, wie.
Beispiel
# Using the previous DataFrame, we will delete a column
# using del function
import pandas as pd
d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd']),
'three' : pd.Series([10,20,30], index=['a','b','c'])}
df = pd.DataFrame(d)
print ("Our dataframe is:")
print df
# using del function
print ("Deleting the first column using DEL function:")
del df['one']
print df
# using pop function
print ("Deleting another column using POP function:")
df.pop('two')
print df
Es ist output ist wie folgt -
Our dataframe is:
one three two
a 1.0 10.0 1
b 2.0 20.0 2
c 3.0 30.0 3
d NaN NaN 4
Deleting the first column using DEL function:
three two
a 10.0 1
b 20.0 2
c 30.0 3
d NaN 4
Deleting another column using POP function:
three
a 10.0
b 20.0
c 30.0
d NaN
Zeilenauswahl, Hinzufügung und Löschung
Wir werden nun das Auswählen, Hinzufügen und Löschen von Zeilen anhand von Beispielen verstehen. Beginnen wir mit dem Konzept der Auswahl.
Auswahl nach Label
Zeilen können ausgewählt werden, indem die Zeilenbezeichnung an a übergeben wird loc Funktion.
import pandas as pd
d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}
df = pd.DataFrame(d)
print df.loc['b']
Es ist output ist wie folgt -
one 2.0
two 2.0
Name: b, dtype: float64
Das Ergebnis ist eine Reihe mit Beschriftungen als Spaltennamen des DataFrame. Und der Name der Serie ist das Etikett, mit dem sie abgerufen wird.
Auswahl nach ganzzahliger Position
Zeilen können ausgewählt werden, indem eine ganzzahlige Position an eine übergeben wird iloc Funktion.
import pandas as pd
d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}
df = pd.DataFrame(d)
print df.iloc[2]
Es ist output ist wie folgt -
one 3.0
two 3.0
Name: c, dtype: float64
Reihen schneiden
Mit dem Operator ':' können mehrere Zeilen ausgewählt werden.
import pandas as pd
d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}
df = pd.DataFrame(d)
print df[2:4]
Es ist output ist wie folgt -
one two
c 3.0 3
d NaN 4
Hinzufügen von Zeilen
Fügen Sie einem DataFrame mithilfe von neue Zeilen hinzu appendFunktion. Diese Funktion hängt die Zeilen am Ende an.
import pandas as pd
df = pd.DataFrame([[1, 2], [3, 4]], columns = ['a','b'])
df2 = pd.DataFrame([[5, 6], [7, 8]], columns = ['a','b'])
df = df.append(df2)
print df
Es ist output ist wie folgt -
a b
0 1 2
1 3 4
0 5 6
1 7 8
Löschen von Zeilen
Verwenden Sie die Indexbezeichnung, um Zeilen aus einem DataFrame zu löschen oder zu löschen. Wenn die Beschriftung dupliziert wird, werden mehrere Zeilen gelöscht.
Wenn Sie im obigen Beispiel feststellen, dass die Beschriftungen doppelt vorhanden sind. Lassen Sie uns ein Etikett ablegen und sehen, wie viele Zeilen gelöscht werden.
import pandas as pd
df = pd.DataFrame([[1, 2], [3, 4]], columns = ['a','b'])
df2 = pd.DataFrame([[5, 6], [7, 8]], columns = ['a','b'])
df = df.append(df2)
# Drop rows with label 0
df = df.drop(0)
print df
Es ist output ist wie folgt -
a b
1 3 4
1 7 8
Im obigen Beispiel wurden zwei Zeilen gelöscht, da diese beiden die gleiche Bezeichnung 0 enthalten.