[PYTHON] Lerne Pandas in 10 Minuten

In der "Pandas 0.15.2-Dokumentation" ist " 10 Minuten zu Pandas ", also war mein Verstand ziemlich organisiert, als ich es mir ansah. Wenn Sie es ernsthaft tun, wird es nicht in 10 Minuten fertig sein, sondern notieren Sie sich einfach, was praktisch erscheint.

Importieren Sie zunächst Pandas und Numpy.

#import liblaries
import pandas as pd
import numpy as np

Erstellen Sie einen DataFrame

Es gibt verschiedene Möglichkeiten, einen DataFrame zu erstellen. Organisieren Sie sie daher. Erstellen Sie zunächst eine Matrix aus DataFrame mit numpy und fügen Sie den Index und die Beschriftung ein.

Indizierung.

#Create a index
dates = pd.date_range("20130101", periods=6)
dates

<class 'pandas.tseries.index.DatetimeIndex'>
[2013-01-01, ..., 2013-01-06]
Length: 6, Freq: D, Timezone: None

Erstellen Sie einen DataFrame und fügen Sie den Index ein.

#Create a DatFrame
df = pd.DataFrame(np.random.randn(6,4),index = dates, columns = list("ABCD"))
df

 	A 	B 	C 	D
2013-01-01 	0.705624 	-0.793903 	0.843425 	0.672602
2013-01-02 	-1.211129 	2.077101 	-1.795861 	0.028060
2013-01-03 	0.706086 	0.385631 	0.967568 	0.271894
2013-01-04 	2.152279 	-0.493576 	1.184289 	-1.193300
2013-01-05 	0.455767 	0.787551 	0.239406 	1.627586
2013-01-06 	-0.639162 	-0.052620 	0.288010 	-2.205777


Erstellen Sie dieses Mal einen DataFrame mit einem Bild, das für jedes Etikett eine Serie erstellt. Hier können Sie für jedes Etikett unterschiedliche d-Typen festlegen

df2 = pd.DataFrame({ 'A' : 1.,
                     'B' : pd.Timestamp('20130102'),
                     'C' : pd.Series(1,index=list(range(4)),dtype='float32'),
                     'D' : np.array([3] * 4,dtype='int32'),
                     'E' : pd.Categorical(["test","train","test","train"]),
                     'F' : 'foo' })
df2

 	A 	B 	C 	D 	E 	F
0 	1 	2013-01-02 	1 	3 	test 	foo
1 	1 	2013-01-02 	1 	3 	train 	foo
2 	1 	2013-01-02 	1 	3 	test 	foo
3 	1 	2013-01-02 	1 	3 	train 	foo


df2.dtypes

A           float64
B    datetime64[ns]
C           float32
D             int32
E          category
F            object
dtype: object


DataFrame-Referenz

Als nächstes sehen Sie, wie Sie die Daten in der gewünschten Form anzeigen.

Zeigen Sie nur Indizes, Spalten und Numpy-Daten an.

df.index

<class 'pandas.tseries.index.DatetimeIndex'>
[2013-01-01, ..., 2013-01-06]
Length: 6, Freq: D, Timezone: None


df.columns

Index([u'A', u'B', u'C', u'D'], dtype='object')

df.values

array([[ 0.705624  , -0.79390348,  0.84342517,  0.67260162],
       [-1.21112884,  2.0771009 , -1.79586146,  0.02806019],
       [ 0.70608621,  0.38563092,  0.9675681 ,  0.27189394],
       [ 2.15227868, -0.49357565,  1.18428903, -1.19329976],
       [ 0.45576744,  0.78755094,  0.23940583,  1.62758649],
       [-0.63916155, -0.05261954,  0.28800958, -2.20577674]])

Eine Zusammenfassung der Statistiken wird zusammen angezeigt, was praktisch ist.

df.describe()

 	A 	B 	C 	D
count 	6.000000 	6.000000 	6.000000 	6.000000
mean 	0.361578 	0.318364 	0.287806 	-0.133156
std 	1.177066 	1.034585 	1.087978 	1.368150
min 	-1.211129 	-0.793903 	-1.795861 	-2.205777
25% 	-0.365429 	-0.383337 	0.251557 	-0.887960
50% 	0.580696 	0.166506 	0.565717 	0.149977
75% 	0.705971 	0.687071 	0.936532 	0.572425
max 	2.152279 	2.077101 	1.184289 	1.627586

Invertieren Sie die DataFrame-Matrix.

df.T

2013-01-01 00:00:00 	2013-01-02 00:00:00 	2013-01-03 00:00:00 	2013-01-04 00:00:00 	2013-01-05 00:00:00 	2013-01-06 00:00:00
A 	0.705624 	-1.211129 	0.706086 	2.152279 	0.455767 	-0.639162
B 	-0.793903 	2.077101 	0.385631 	-0.493576 	0.787551 	-0.052620
C 	0.843425 	-1.795861 	0.967568 	1.184289 	0.239406 	0.288010
D 	0.672602 	0.028060 	0.271894 	-1.193300 	1.627586 	-2.205777

Nach beliebiger Achse sortieren. Sortieren Sie beispielsweise die Beschriftungen in absteigender Reihenfolge.

df.sort_index(axis=1, ascending=False)

 	D 	C 	B 	A
2013-01-01 	0.672602 	0.843425 	-0.793903 	0.705624
2013-01-02 	0.028060 	-1.795861 	2.077101 	-1.211129
2013-01-03 	0.271894 	0.967568 	0.385631 	0.706086
2013-01-04 	-1.193300 	1.184289 	-0.493576 	2.152279
2013-01-05 	1.627586 	0.239406 	0.787551 	0.455767
2013-01-06 	-2.205777 	0.288010 	-0.052620 	-0.639162

Als nächstes folgt der Wert der Bezeichnung "B" in aufsteigender Reihenfolge.


df.sort(columns='B')

A 	B 	C 	D
2013-01-01 	0.705624 	-0.793903 	0.843425 	0.672602
2013-01-04 	2.152279 	-0.493576 	1.184289 	-1.193300
2013-01-06 	-0.639162 	-0.052620 	0.288010 	-2.205777
2013-01-03 	0.706086 	0.385631 	0.967568 	0.271894
2013-01-05 	0.455767 	0.787551 	0.239406 	1.627586
2013-01-02 	-1.211129 	2.077101 	-1.795861 	0.028060

Daten auswählen

Daten können aus verschiedenen Blickwinkeln extrahiert werden. Zum Beispiel nur ein Teil des Index.

Extrahieren Sie Daten, indem Sie sowohl die Bezeichnung als auch den Index angeben.

df.loc['20130102':'20130104',['A','B']]

 	A 	B
2013-01-02 	-1.211129 	2.077101
2013-01-03 	0.706086 	0.385631
2013-01-04 	2.152279 	-0.493576

Sie können eine Gruppe mit einer beliebigen Bezeichnung erstellen. Daten können so wie sie sind manipuliert werden.


#Creating a DataFrame
df = pd.DataFrame({"A" : ['foo', 'bar', 'foo', 'bar','foo', 'bar', 'foo', 'foo'],
                   "B" : ['one', 'one', 'two', 'three','two', 'two', 'one', 'three'],
                   "C" : np.random.randn(8),
                   "D" : np.random.randn(8)})

df

 	A 	B 	C 	D
0 	foo 	one 	1.130975 	1.235940
1 	bar 	one 	-0.140004 	-2.714958
2 	foo 	two 	1.526578 	-0.165415
3 	bar 	three 	-1.049092 	-0.037484
4 	foo 	two 	-1.182303 	0.288754
5 	bar 	two 	0.530652 	1.204125
6 	foo 	one 	0.678477 	-0.273343
7 	foo 	three 	0.929624 	0.169822

df.sort(columns='B')

A 	B 	C 	D
2013-01-01 	0.705624 	-0.793903 	0.843425 	0.672602
2013-01-04 	2.152279 	-0.493576 	1.184289 	-1.193300
2013-01-06 	-0.639162 	-0.052620 	0.288010 	-2.205777
2013-01-03 	0.706086 	0.385631 	0.967568 	0.271894
2013-01-05 	0.455767 	0.787551 	0.239406 	1.627586
2013-01-02 	-1.211129 	2.077101 	-1.795861 	0.028060

Daten auswählen

Daten können aus verschiedenen Blickwinkeln extrahiert werden. Zum Beispiel nur ein Teil des Index.

Extrahieren Sie Daten, indem Sie sowohl die Bezeichnung als auch den Index angeben.

df.loc['20130102':'20130104',['A','B']]

 	A 	B
2013-01-02 	-1.211129 	2.077101
2013-01-03 	0.706086 	0.385631
2013-01-04 	2.152279 	-0.493576

Sie können eine Gruppe mit einer beliebigen Bezeichnung erstellen. Daten können so wie sie sind manipuliert werden.

#Creating a DataFrame
df = pd.DataFrame({"A" : ['foo', 'bar', 'foo', 'bar','foo', 'bar', 'foo', 'foo'],
                   "B" : ['one', 'one', 'two', 'three','two', 'two', 'one', 'three'],
                   "C" : np.random.randn(8),
                   "D" : np.random.randn(8)})
df

 	A 	B 	C 	D
0 	foo 	one 	1.130975 	1.235940
1 	bar 	one 	-0.140004 	-2.714958
2 	foo 	two 	1.526578 	-0.165415
3 	bar 	three 	-1.049092 	-0.037484
4 	foo 	two 	-1.182303 	0.288754
5 	bar 	two 	0.530652 	1.204125
6 	foo 	one 	0.678477 	-0.273343
7 	foo 	three 	0.929624 	0.169822

#Grouping and then calculate sum
df.groupby('A').sum()

 	C 	D
A 		
bar 	-0.658445 	-1.548317
foo 	3.083350 	1.255758


Erstellen einer Pivot-Tabelle

Erstellen eines DataFrame, um daraus eine Pivot-Tabelle zu machen.

#Create a DataFrame
df = pd.DataFrame({'A' : ['one', 'one', 'two', 'three'] * 3,
                   'B' : ['A', 'B', 'C'] * 4,
                   'C' : ['foo', 'foo', 'foo', 'bar', 'bar', 'bar'] *2,
                   'D' : np.random.randn(12),
                   'E' : np.random.randn(12)})
df
A 	B 	C 	D 	E
0 	one 	A 	foo 	0.575699 	-1.669032
1 	one 	B 	foo 	0.592889 	-2.526196
2 	two 	C 	foo 	-2.229949 	-0.703339
3 	three 	A 	bar 	0.801380 	-1.638983
4 	one 	B 	bar 	-0.135691 	-0.302586
5 	one 	C 	bar 	0.317401 	1.169608
6 	two 	A 	foo 	0.064460 	-0.109437
7 	three 	B 	foo 	-0.605017 	1.043246
8 	one 	C 	foo 	-0.365220 	0.850535
9 	one 	A 	bar 	1.033552 	0.226002
10 	two 	B 	bar 	-0.260542 	0.352249
11 	three 	C 	bar 	0.518531 	1.407827

Es kann relativ einfach in einen Pivot-Tisch umgewandelt werden.

pd.pivot_table(df, values='D', index=['A', 'B'], columns=['C'])

 	C 	bar 	foo
A 	B 		
one 	A 	1.033552 	0.575699
B 	-0.135691 	0.592889
C 	0.317401 	-0.365220
three 	A 	0.801380 	NaN
B 	NaN 	-0.605017
C 	0.518531 	NaN
two 	A 	NaN 	0.064460
B 	-0.260542 	NaN
C 	NaN 	-2.229949

Zusammenfassung

Wenn Sie es sich einmal kurz ansehen, wird es wieder angezeigt, wenn Sie sich dem Prozess stellen, der sehr geschätzt wird.

Referenz

pandas 0.15.2 documentation http://pandas.pydata.org/pandas-docs/stable/index.html

10 Minutes to pandas http://pandas.pydata.org/pandas-docs/stable/10min.html

Recommended Posts

Lerne Pandas in 10 Minuten
[Python] Pandas in 10 Minuten vollständig zu verstehen
Pandas lernen mit Chemoinfomatik
UnicodeDecodeError in pandas read_csv
Verstehe in 10 Minuten Selen
Selen läuft in 15 Minuten
Tauschen Sie Spalten in Pandas-Datenrahmen aus
Starten Sie in 5 Minuten GIMP Python-Fu
Erstellen Sie Dummy-Variablen mit Pandas (get_dummies)
Wie man nüchtern mit Pandas schreibt
Funktionen von pd.NA in Pandas 1.0.0 (rc0)
Pandas
Lassen Sie uns BERT in etwa 30 Minuten erleben.
Kratzen mit schöner Suppe in 10 Minuten
Zusammenfassung der häufig verwendeten Grammatik bei Pandas
Machen Sie matplotlib in 3 Minuten mit Japanisch kompatibel
Stellen Sie Django in 3 Minuten mit Docker-Compose bereit
# Zeile ignorieren und mit Pandas lesen
Große Pandas Lass uns viel lernen
Beginnen Sie in 30 Minuten mit Python! Erstellen Sie eine Entwicklungsumgebung und lernen Sie grundlegende Grammatik
Lernen Sie das Entwurfsmuster "Prototype" mit Python
Lernen Sie das Entwurfsmuster "Builder" mit Python
[Verständnis in 3 Minuten] Der Beginn von Linux
Zusammenfassung der häufig verwendeten Methoden bei Pandas
Lernen Sie das Designmuster "Flyweight" in Python
Lernen Sie das Entwurfsmuster "Observer" in Python
Lernen Sie das Entwurfsmuster "Memento" mit Python
Lernen Sie das Entwurfsmuster "Proxy" in Python
Holen Sie sich die besten n-ten Werte in Pandas
Lernen Sie das Entwurfsmuster "Befehl" in Python
CSS-Umgebung in 10 Minuten mit Django erstellt
Lernen Sie das Entwurfsmuster "Besucher" mit Python
Vorsichtsmaßnahmen bei Verwendung der for-Anweisung in Pandas
Lernen Sie das Entwurfsmuster "Bridge" mit Python
Lernen Sie das Entwurfsmuster "Mediator" mit Python
Lernen Sie das Designmuster "Decorator" mit Python
So weisen Sie den Index im Pandas-Datenrahmen neu zu
Lernen Sie das Entwurfsmuster "Iterator" mit Python
Djangos External Key Tutorial in 10 Minuten
Lernen Sie das Entwurfsmuster "Strategie" mit Python
RDS-Daten über die Schrittplattform werden an Pandas gesendet
Lernen Sie das Entwurfsmuster "Composite" mit Python
Lernen Sie das Entwurfsmuster "State" in Python
Lernen Sie APPELPY in der 10 Minutes-Python Applied Metric Economics Library
Holen Sie sich die Cloud-Protokollierung in Python in 10 Minuten
Lernen Sie das Entwurfsmuster "Adapter" mit Python
Verarbeiten von Memos, die häufig bei Pandas (Anfängern) verwendet werden
Lesen von CSV-Dateien mit Pandas
Hinzufügen von Serien zur Spalte in Python-Pandas
Behandeln Sie 3D-Datenstrukturen mit Pandas
Gibt es NaN im Pandas DataFrame?