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

高洛峰
Freigeben: 2018-05-29 15:23:05
Original
29412 Leute haben es durchsucht

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`
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren
zusammen. Der zweite Typ: kann nur sichtbar

bb[['one','three']][:2]
Out[33]: 
 one three
22 1 3
33 4 6
Nach dem Login kopieren
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)
Nach dem Login kopieren
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
Nach dem Login kopieren
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
Nach dem Login kopieren

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"
Nach dem Login kopieren
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
Nach dem Login kopieren
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
Nach dem Login kopieren

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
Nach dem Login kopieren
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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage