Heim >Backend-Entwicklung >Python-Tutorial >Einführung in einfache Betriebsmethoden von pandas.DataFrame (Erstellen, Indizieren, Hinzufügen und Löschen) in Python

Einführung in einfache Betriebsmethoden von pandas.DataFrame (Erstellen, Indizieren, Hinzufügen und Löschen) in Python

高洛峰
高洛峰Original
2018-05-29 15:23:0529459Durchsuche

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 9
zusammen. Der zweite Typ: kann nur sichtbar

bb[['one','three']][:2]
Out[33]: 
 one three
22 1 3
33 4 6
Wenn 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]: 1
Das 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 77
Hier 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 77
Teilen 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn