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.