English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Kettenverknüpfung in Pandas

Pandas Verknüpfung Beispiel

Pandas bietet verschiedene Funktionen, um Serien, DataFrame und Panel-Objekte einfach zusammenzuführen.

 pd.concat(objs,axis=0,join='outer',join_axes=None,
 ignore_index=False)

objs − Dies ist eine Sequenz oder Abbildung von Series, DataFrame oder Panel-Objekt. axis − {0,1,...}, Standardwert ist 0. Dies ist die zu verknüpfende Achse. join − {'inner', 'outer'}, Standardwert ist 'outer'. Wie werden die Indexe auf anderen Achsen behandelt. External ist der Verband, inner ist das Kreuz. ignore_index − Boolescher Wert, Standardwert ist False. Wenn True, verwenden Sie keine Indexwerte auf der Verknüpfungsachse. Die Ergebnishaft wird als 0, ..., n markiert,...-1。 join_axes − Dies ist eine Liste von Index-Objekten. Für andere (n-1)Spezifische Index der Achse, anstatt intern/Externe Einstellungen Logik.

Verknüpfungsobjekte

Die CONCAT-Funktion übernimmt die Aufgabe, alle Verknüpfungsoperationen entlang der Achsen durchzuführen. Lassen Sie uns verschiedene Objekte erstellen und verbinden.

 import pandas as pd
 one = pd.DataFrame({
    'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'],
    'subject_id':['sub1','sub2','sub4','sub6','sub5'],
    'Marks_scored':['98,90,87,69,78]}
    index=[1,2,3,4,5])
 two = pd.DataFrame({
    'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'],
    'subject_id':['sub2','sub4','sub3','sub6','sub5'],
    'Marks_scored':['89,80,79,97,88]}
    index=[1,2,3,4,5])
 print(pd.concat([one,two])))

Die Ergebnisse des Laufs sind wie folgt:

    Marks_scored     Name   subject_id
1             98     Alex         sub1
2             90      Amy         sub2
3             87    Allen                   sub4
4             69    Alice                   sub6
5             78   Ayoung                   sub5
1             89    Billy                   sub2
2             80                       Brian                   sub4
3             79     Bran                   sub3
4             97    Bryce                   sub6
5             88    Betty                   sub5

Angenommen, wir möchten bestimmte Schlüssel mit jedem Teil eines zerkleinerten DataFrames verknüpfen. Dies können wir durch die Verwendung des keys-Parameters erreichen-

 import pandas as pd
 one = pd.DataFrame({
    'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'],
    'subject_id':['sub1','sub2','sub4','sub6','sub5'],
    'Marks_scored':['98,90,87,69,78]}
    index=[1,2,3,4,5])
 two = pd.DataFrame({
    'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'],
    'subject_id':['sub2','sub4','sub3','sub6','sub5'],
    'Marks_scored':['89,80,79,97,88]}
    index=[1,2,3,4,5])
 print(pd.concat([one,two],keys=['x','y']))

Die Ergebnisse des Laufs sind wie folgt:

x  1  98    Alex                   sub1
   2  90                       Amy                   sub2
   3  87    Allen                 sub4
   4  69    Alice                 sub6
   5  78    Ayoung                 sub5
y  1  89    Billy                   sub2
   2  80                       Brian                   sub4
   3  79    Bran                   sub3
   4  97    Bryce                 sub6
   5  88    Betty                 sub5

Der Index des Ergebnisses ist dupliziert; jeder Index wird dupliziert.

Wenn das Ergebnisobjekt seinen eigenen Index befolgen muss, wird ignore_index auf True gesetzt.

 import pandas as pd
 one = pd.DataFrame({
    'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'],
    'subject_id':['sub1','sub2','sub4','sub6','sub5'],
    'Marks_scored':['98,90,87,69,78]}
    index=[1,2,3,4,5])
 two = pd.DataFrame({
    'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'],
    'subject_id':['sub2','sub4','sub3','sub6','sub5'],
    'Marks_scored':['89,80,79,97,88]}
    index=[1,2,3,4,5])
 print(pd.concat([one,two],keys=['x','y'],ignore_index=True))

Die Ergebnisse des Laufs sind wie folgt:

    Marks_scored           Name                subject_id
0             98     Alex          sub1
1             90      Amy          sub2
2             87    Allen          sub4
3             69    Alice          sub6
4             78   Ayoung          sub5
5             89    Billy          sub2
6             80    Brian          sub4
7             79     Bran          sub3
8             97    Bryce          sub6
9             88    Betty          sub5

Beachten Sie, dass der Index vollständig geändert wird und die Schlüssel auch überschrieben werden.

Wenn Sie entlang von axis = 1Wenn Sie zwei Objekte hinzufügen, wird eine neue Spalte hinzugefügt.

 import pandas as pd
 one = pd.DataFrame({
    'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'],
    'subject_id':['sub1','sub2','sub4','sub6','sub5'],
    'Marks_scored':['98,90,87,69,78]}
    index=[1,2,3,4,5])
 two = pd.DataFrame({
    'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'],
    'subject_id':['sub2','sub4','sub3','sub6','sub5'],
    'Marks_scored':['89,80,79,97,88]}
    index=[1,2,3,4,5])
 print(pd.concat([one,two],axis=1))

Die Ergebnisse des Laufs sind wie folgt:

    Marks_scored           Name                subject_id           Marks_scored           Name           subject_id
1           98      Alex                 sub1         89         Billy                   sub2
2           90                     Amy                 sub2         80                       Brian                   sub4
3           87     Allen                 sub4         79          Bran                   sub3
4           69     Alice                 sub6         97         Bryce                   sub6
5           78    Ayoung                 sub5         88         Betty                   sub5

Verwenden Sie append, um zu verbinden

Concat-funktionale Kurzbefehle sind die append-Beispielmethoden auf Series und DataFrame. Diese Methoden sind tatsächlich früher als concat. Sie verbinden entlang der Achse = 0, d.h. des Index-

 import pandas as pd
 one = pd.DataFrame({
    'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'],
    'subject_id':['sub1','sub2','sub4','sub6','sub5'],
    'Marks_scored':['98,90,87,69,78]}
    index=[1,2,3,4,5])
 two = pd.DataFrame({
    'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'],
    'subject_id':['sub2','sub4','sub3','sub6','sub5'],
    'Marks_scored':['89,80,79,97,88]}
    index=[1,2,3,4,5])
 print(one.append(two))

Die Ergebnisse des Laufs sind wie folgt:

    Marks_scored           Name                subject_id
1           98      Alex                 sub1
2           90                     Amy                 sub2
3           87     Allen                 sub4
4           69     Alice                 sub6
5           78    Ayoung                 sub5
1           89     Billy                 sub2
2           80     Brian      sub4
3           79      Bran      sub3
4           97     Bryce      sub6
5           88     Betty      sub5

Diese zusätzliche Funktion kann mehrere Objekte und-

 import pandas as pd
 one = pd.DataFrame({
    'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'],
    'subject_id':['sub1','sub2','sub4','sub6','sub5'],
    'Marks_scored':['98,90,87,69,78]}
    index=[1,2,3,4,5])
 two = pd.DataFrame({
    'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'],
    'subject_id':['sub2','sub4','sub3','sub6','sub5'],
    'Marks_scored':['89,80,79,97,88]}
    index=[1,2,3,4,5])
 print(one.append([two,one,two]))

Die Ergebnisse des Laufs sind wie folgt:

    Marks_scored   Name    subject_id
1           98     Alex          sub1
2           90      Amy          sub2
3           87    Allen          sub4
4           69    Alice          sub6
5           78   Ayoung          sub5
1           89    Billy          sub2
2           80    Brian          sub4
3           79     Bran          sub3
4           97    Bryce          sub6
5           88    Betty          sub5
1           98     Alex          sub1
2           90      Amy          sub2
3           87    Allen          sub4
4           69    Alice          sub6
5           78   Ayoung          sub5
1           89    Billy          sub2
2           80    Brian          sub4
3           79     Bran          sub3
4           97    Bryce          sub6
5           88    Betty          sub5

Zeitreihen

Pandas bietet leistungsstarke Werkzeuge für die Verarbeitung von Zeitreihendaten, insbesondere im Finanzbereich. Bei der Verarbeitung von Zeitreihendaten stoßen wir oft auf die folgenden Situationen:

Erzeugt Zeitreihen Konvertiert Zeitreihen in verschiedene Frequenzen

Bietet eine Reihe relativ kompakter und unabhängiger Werkzeuge, um diese Aufgaben auszuführen.

Bekommt die aktuelle Zeit

datetime.now()Bieten Ihnen die aktuelle Datum und Uhrzeit.

 import pandas as pd
 print(pd.datetime.now())

Die Ergebnisse des Laufs sind wie folgt:

2017-05-11 06:10:13.393147

Erstellen Sie einen Zeitstempel

Zeitstempel sind die grundlegendsten Typen von Zeitreihendaten, die die Werte mit Zeitpunkten verknüpfen. Für Pandas-Objekte bedeutet das, dass man Zeitpunkte verwendet. Lassen Sie uns ein Beispiel nennen-

import pandas as pd
print(pd.Timestamp('2017-03-01'))

Die Ergebnisse des Laufs sind wie folgt:

2017-03-01 00:00:00

Man kann auch Ganzzahlen oder Fließkomma-Zeiten umwandeln. Diese haben standardmäßig die Einheit Nanosekunden (da dies die Speicherweise der Zeitstempel ist). Aber in der Regel wird die Ära in einer anderen angegebenen Einheit gespeichert. Ein weiteres Beispiel

import pandas as pd
print(pd.Timestamp(1587687255,unit='s'))

Die Ergebnisse des Laufs sind wie folgt:

 2020-04-24 00:14:15

Erstellungszeiträume

import pandas as pd
print(pd.date_range("11:00", "13:30", freq="30min").time)

Die Ergebnisse des Laufs sind wie folgt:

 [datetime.time(11, 0) datetime.time(11, 3) datetime.time(12, 0)
 datetime.time(12, 3) datetime.time(13, 0) datetime.time(13, 3, 0)

Ändern der Zeitfrequenz

import pandas as pd
print(pd.date_range("11:00", "13:30", freq="H").time)

Die Ergebnisse des Laufs sind wie folgt:

[datetime.time(11, 0) datetime.time(12, 0) datetime.time(13, 0)

In Zeitstempel umwandeln

Um Serien oder ähnliche Listenobjekte (z.B. Strings, Tupel oder Mischungen) in ähnliche Datumsobjekte zu konvertieren, kann die Funktion to_datetime verwendet werden. Wenn übergeben, wird eine Series (mit dem gleichen Index) zurückgegeben, und Listenähnliche Listen werden in DatetimeIndex umgewandelt. Sehen Sie sich das folgende Beispiel an-

import pandas as pd
print(pd.to_datetime(pd.Series(['Jul 31, 2009','2010-01-10', None]))

Die Ergebnisse des Laufs sind wie folgt:

 0 2009-07-31
 1 2010-01-10
 2 NaT
 dtype: datetime64[ns]

NaT bedeutet nicht Zeit (entspricht NaN)

Lassen Sie uns ein weiteres Beispiel nennen.

import pandas as pd
print(pd.to_datetime(['2005/11/23', '2010.12.31', None])

Die Ergebnisse des Laufs sind wie folgt:

DatetimeIndex(['2005-11-23', '2010-12-31', 'NaT]', dtype='datetime64[ns], freq=None)