Heim >Backend-Entwicklung >Python-Tutorial >Einführung in einfache Betriebsmethoden von pandas.DataFrame (Erstellen, Indizieren, Hinzufügen und Löschen) in Python
In diesem Artikel werden die einfachen Betriebsmethoden von pandas.DataFrame (Erstellung, Indizierung, Hinzufügung und Löschung) in Python vorgestellt, einschließlich zugehöriger Informationen zur Erstellung, Indizierung, Hinzufügung und Löschung. Der Artikel stellt es ausführlich vor Als Referenz werfen wir einen Blick nach unten.
Vorwort
In letzter Zeit habe ich im Internet viele Bedienungsanleitungen nach pandas.DataFrame
durchsucht, bei denen es sich zwar alles um Grundoperationen handelt, aber Die Kombination dieser Vorgänge scheint immer noch einige Zeit in Anspruch zu nehmen, um den DataFrame korrekt zu betreiben, und ich habe lange gebraucht, um den Fehler zu beheben. Ich werde hier einige Zusammenfassungen für Sie, mich und andere erstellen. Freunde, die Interesse haben, sollten vorbeikommen und einen Blick darauf werfen.
1. Einfache Operation zum Erstellen von DataFrame:
1. Erstellen Sie basierend auf dem Wörterbuch:
In [1]: import pandas as pd In [3]: aa={'one':[1,2,3],'two':[2,3,4],'three':[3,4,5]} In [4]: bb=pd.DataFrame(aa) In [5]: bb Out[5]: one three two 0 1 3 2 1 2 4 3 2 3 5 4`
Die Schlüssel im Wörterbuch sind die Spalten im DataFrame, aber es gibt keinen Indexwert, daher müssen Sie ihn selbst festlegen. Wenn er nicht festgelegt ist, beginnt die Zählung standardmäßig bei Null.
bb=pd.DataFrame(aa,index=['first','second','third']) bb Out[7]: one three two first 1 3 2 second 2 4 3 third 3 5 4
2. Aus einem mehrdimensionalen Array erstellen
import numpy as np In [9]: del aa In [10]: aa=np.array([[1,2,3],[4,5,6],[7,8,9]]) In [11]: aa Out[11]: array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) In [12]: bb=pd.DataFrame(aa) In [13]: bb Out[13]: 0 1 2 0 1 2 3 1 4 5 6 2 7 8 9
Um aus einem mehrdimensionalen Array zu erstellen, müssen Sie ihm Spalten und Indizes zuweisen der DataFrame, sonst ist es die Standardeinstellung. Sehr hässlich.
bb=pd.DataFrame(aa,index=[22,33,44],columns=['one','two','three']) In [15]: bb Out[15]: one two three 22 1 2 3 33 4 5 6 44 7 8 9
3. Verwenden Sie einen anderen DataFrame, um
bb=pd.DataFrame(aa,index=[22,33,44],columns=['one','two','three']) bb Out[15]: one two three 22 1 2 3 33 4 5 6 44 7 8 9 cc=bb[['one','three']].copy() Cc Out[17]: one three 22 1 3 33 4 6 44 7 9
Die Kopie hier ist eine tiefe Kopie, die den Wert in bb nicht ändern kann . .
cc['three'][22]=5 bb Out[19]: one two three 22 1 2 3 33 4 5 6 44 7 8 9 cc Out[20]: one three 22 1 5 33 4 6 44 7 9
2. Indexoperation von DataFrame:
Für einen DataFrame ist die Indizierung am problematischsten und fehleranfälligsten.
1. Das Indizieren einer oder mehrerer Spalten ist relativ einfach:
bb['one'] Out[21]: 22 1 33 4 44 7 Name: one, dtype: int32
Für mehrere Spaltennamen müssen die Eingabespaltennamen in einer Liste gespeichert werden kollierbaren Variablen, andernfalls wird ein Fehler gemeldet.
bb[['one','three']] Out[29]: one three 22 1 3 33 4 6 44 7 9
2. Indexieren Sie einen Datensatz oder mehrere Datensätze:
bb[1:3] Out[27]: one two three 33 4 5 6 44 7 8 9 bb[:1] Out[28]: one two three 22 1 2 3
Beachten Sie hier, dass der Doppelpunkt erforderlich ist, andernfalls ist er erforderlich Indexspalte.
3. Indizieren Sie bestimmte Datensätze von Variablen in bestimmten Spalten. Das hat mich lange gequält:
Der erste Typ
bb.loc[[22,33]][['one','three']] Out[30]: one three 22 1 3 33 4 6
Sie können den Wert hier nicht ändern. Sie können den Wert nur lesen, aber nicht schreiben. Dies hängt möglicherweise mit der Funktion loc()
bb.loc[[22,33]][['one','three']]=[[2,2],[3,6]] In [32]: bb Out[32]: one two three 22 1 2 3 33 4 5 6 44 7 8 9zusammen. Der zweite Typ: kann nur sichtbar
bb[['one','three']][:2] Out[33]: one three 22 1 3 33 4 6Wenn Sie den Wert ändern möchten, wird ein Fehler gemeldet.
In [34]: bb[['one','three']][:2]=[[2,2],[2,2]] -c:1: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_index,col_indexer] = value instead F:\Anaconda\lib\site-packages\pandas\core\frame.py:1999: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame return self._setitem_slice(indexer, value)Der dritte Typ: Sie können den Wert von Daten ändern! ! ! Iloc wird entsprechend der Anzahl der Zeilen und Spalten der Daten indiziert, Index und Spalten nicht mitgezählt
bb.iloc[2:3,2:3] Out[36]: three 44 9 bb.iloc[1:3,1:3] Out[37]: two three 33 5 6 44 8 9 bb.iloc[0,0] Out[38]: 1Das Folgende ist der Beweis:
bb.iloc[0:4,0:2]=[[9,9],[9,9],[9,9]] In [45]: bb Out[45]: one two three 22 9 9 3 33 9 9 6 44 9 9 9
Drei . Erstellen Sie eine neue Spalte oder mehrere Spalten auf dem ursprünglichen DataFrame
1. Es können nur eine Spalte allein erstellt werden Nicht einfach zu verwenden. Persönlicher Test. Ungültig: Die von
bb['new']=[2,3,4] bb Out[51]: one two three new 22 9 9 3 2 33 9 9 6 3 44 9 9 9 4 bb[['new','new2']]=[[2,3,4],[5,3,7]] KeyError: "['new' 'new2'] not in index"zugewiesene Liste wird grundsätzlich in der Reihenfolge des angegebenen Indexwerts zugewiesen, aber im Allgemeinen müssen wir den entsprechenden Index zuweisen, wenn Sie möchten Weitere fortgeschrittene Aufgaben finden Sie im Folgenden.
2. Verwenden Sie ein Wörterbuch, um mehreren Spalten Werte nach Index zuzuweisen:
aa={33:[234,44,55],44:[657,77,77],22:[33,55,457]} In [58]: bb=bb.join(pd.DataFrame(aa.values(),columns=['hi','hello','ok'],index=aa.keys())) In [59]: bb Out[59]: one two three new hi hello ok 22 9 9 3 2 33 55 457 33 9 9 6 3 234 44 55 44 9 9 9 4 657 77 77Hier ist aa ein verschachteltes Wörterbuch und eine Liste, die einem Datensatz entspricht , mit Schlüsseln Verwenden Sie es als Indexnamen anstelle des Standardspaltennamens. Der Zweck, mehrere Spalten nach Index abzugleichen, wird erreicht. Da die Speicherung von
chaotisch ist, führt die Verwendung von dict()
ohne Zuweisung eines Werts zu seinem Index zu Verwirrung in den Datensätzen. Dies ist erwähnenswert. dict()
4. Mehrere Spalten oder Datensätze löschen:
Spalten löschen
bb.drop(['new','hi'],axis=1) Out[60]: one two three hello ok 22 9 9 3 55 457 33 9 9 6 44 55 44 9 9 9 77 77
Datensätze löschen
bb.drop([22,33],axis=0) Out[61]: one two three new hi hello ok 44 9 9 9 4 657 77 77Teilen Sie mit Ihnen einen Artikel über das Summieren von Zeilen und Spalten und das Hinzufügen neuer Zeilen und Spalten in pandas.DataFrame in Python. DataFrame hat viele Funktionen, die noch nicht behandelt wurden. Nachdem ich die API auf der offiziellen Website gelesen habe, werde ich sie weiterhin teilen. Verwandte Artikel:
Über pandas.DataFrame in Python zum Summieren von Zeilen und Spalten und zum Hinzufügen neuer Zeilen und Spalten, Beispielcode
Ausführlich Erläuterung des Beispielcodes der pandas.DataFrame-Methode zum Ausschließen bestimmter Zeilen in Python
Das obige ist der detaillierte Inhalt vonEinführung in einfache Betriebsmethoden von pandas.DataFrame (Erstellen, Indizieren, Hinzufügen und Löschen) in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!