Python-Pandas: Erstellen Sie eine neue Spalte basierend auf Kategoriewerten aus einem anderen Datenrahmen

Michel Mesquita

Ich habe zwei Datenrahmen:

  • dfA, die Tausende von Zeilen mit Temperaturdaten enthält. Jeder Temperaturwert ist mit einem timeIDWert (1, 2, 3, ..., n) verknüpft, der von verschiedenen Objekten gemessen wird, so dass es wiederholte Zeit-IDs gibt
  • dfBenthält Etiketten, die jede Zeit-ID identifizieren. Diese Bezeichnungen sind korrekte dateWerte für Datum / Uhrzeit ( )

Jetzt möchte ich eine neue Spalte erstellen dfA, die den richtigen dateWert enthält , der rechts entspricht timeID. Wie kann ich das erreichen?

Hier sind einige Zeilen der Datensätze, die ich als Beispiel habe:

dfA = pd.DataFrame({'timeID': ['1', '2', '3','2','3','4'], 'temp': ['4.5', '5.1', '4.0','-2.3','3.9','-1.1']})
dfB = pd.DataFrame(pd.date_range('6/24/2013', periods=6, freq='10Min'))
seq = pd.Series(range(1, 7)).to_frame()
dfB = pd.concat([seq,dfB],axis=1)
dfB.columns = ['timeID','date']
dfB.set_index('timeID',inplace=True)
print(dfA)
print(dfB)

Die Ausgabe für dfAist:

|    temp  timeID
+-----------------
| 0   4.5      1
| 1   5.1      2
| 2   4.0      3
| 3  -2.3      2
| 4   3.9      3
| 5  -1.1      4

Die Ausgabe für dfBist:

|                      date
| timeID                    
+----------------------------
| 1      2013-06-24 00:00:00
| 2      2013-06-24 00:10:00
| 3      2013-06-24 00:20:00
| 4      2013-06-24 00:30:00
| 5      2013-06-24 00:40:00
| 6      2013-06-24 00:50:00
MaxU

Zunächst müssen Sie sicherstellen, dass die timeIDSpalte in beiden DFs vom gleichen Typ ist, und dann können Sie die map () -Methode verwenden:

In [78]: dfA['date'] = dfA['timeID'].astype(dfB.index.dtype).map(dfB['date'])

In [79]: dfA
Out[79]:
   temp timeID                date
0   4.5      1 2013-06-24 00:00:00
1   5.1      2 2013-06-24 00:10:00
2   4.0      3 2013-06-24 00:20:00
3  -2.3      2 2013-06-24 00:10:00
4   3.9      3 2013-06-24 00:20:00
5  -1.1      4 2013-06-24 00:30:00

Es ist auch sinnvoll, timeIDdtype in einen kleineren DF zu konvertieren, da dieser schneller (effektiver) ist. Wenn er dfBalso kleiner ist, würde ich dies folgendermaßen tun:

In [82]: dfB.index = dfB.index.astype(str)

In [84]: dfA['date'] = dfA['timeID'].map(dfB['date'])

In [85]: dfA
Out[85]:
   temp timeID                date
0   4.5      1 2013-06-24 00:00:00
1   5.1      2 2013-06-24 00:10:00
2   4.0      3 2013-06-24 00:20:00
3  -2.3      2 2013-06-24 00:10:00
4   3.9      3 2013-06-24 00:20:00
5  -1.1      4 2013-06-24 00:30:00

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Erstellen Sie eine Pandas-Spalte basierend auf einem Suchwert aus einem anderen Datenrahmen

So erstellen Sie eine neue Spalte basierend auf Werten aus anderen Spalten in einem Pandas DataFrame

Pandas/Python - Erstellen Sie eine neue Spalte basierend auf Querverweisen aus einer anderen Spalte

Erstellen Sie eine neue Spalte im Python 3-Datenrahmen (Pandas) basierend auf dem Wert in einer anderen Spalte

Erstellen Sie eine neue Spalte mit dplyr basierend auf Zeichenfolgenwerten in allen anderen Spalten in einem Datenrahmen in R

Erstellen Sie eine neue Spalte basierend auf der Datumsbedingung in einem anderen Datenrahmen

Erstellen Sie eine neue Spalte basierend auf der Bedingung aus einer Spalte in einem anderen Dataset

Aktualisieren Sie den Wert in eine neue Spalte im aktuellen Datenrahmen basierend auf einer anderen Spalte aus einem anderen Datenrahmen

So erstellen Sie eine neue Variable basierend auf der Bedingung aus einem anderen Datenrahmen in R

So erstellen Sie eine neue Variable basierend auf der Bedingung aus einem anderen Datenrahmen in R

Suchen und Nachschlagen Suchen Sie nach Werten aus einem Datenrahmen in einem anderen Datenrahmen und füllen Sie eine neue Spalte basierend auf Nachschlagewerten in Pandas

Extrahieren Sie Informationen basierend auf 2 Spalten in einem Datenrahmen und erstellen Sie eine neue Spalte - Python

Füllen Sie eine Spalte im Datenrahmen basierend auf ähnlichen Werten aus einem anderen Datenrahmen in Pandas

Pandas: Fügen Sie eine neue Spalte in einem Datenrahmen hinzu, basierend auf einem Wert in einem anderen Datenrahmen

Erstellen Sie eine Spalte basierend auf mehreren Spaltenbedingungen aus einem anderen Datenrahmen

Erstellen Sie eine Spalte in einem Datenrahmen basierend auf einer anderen Spalte in einem anderen Datenrahmen in R.

Pandas - Erstellen Sie eine neue Spalte mit einem Wert basierend auf dem Namen der anderen Spalten

Pandas/Python: So erstellen Sie eine neue Spalte basierend auf Werten aus anderen Spalten und wenden eine zusätzliche Bedingung auf diese neue Spalte an

Python Pandas: Erstellen Sie eine neue Spalte mit Berechnungen basierend auf kategorialen Werten in einer anderen Spalte

Erstellen Sie eine neue Spalte in einem Datenrahmen, die Text enthält, der aus einer anderen basierend auf einer Liste oder einem Vektor extrahiert wurde

Python-Pandas erstellen eine neue Spalte basierend auf einem anderen Spaltenwert

Neue Spalte in einem Datenrahmen mit Werten aus einem anderen füllen, basierend auf Werten in zwei anderen Spalten? (Python / Pandas)

Pandas: Erstellen Sie eine Datenrahmenspalte basierend auf einem anderen Datenrahmen

So erstellen Sie eine neue Spalte basierend auf einer Zeichenfolgenbildung einer anderen Zeile in Python-Pandas

Python Pandas: Erstellen Sie eine neue Spalte mit Mindestwerten basierend auf eindeutigen Bezeichnern in anderen Spalten

Erstellen Sie eine neue Spalte basierend auf der Anzahl der Zeilen, die dem Wert in einem anderen Datenrahmen entsprechen

So erstellen Sie eine neue Spalte in einem vorhandenen Datenrahmen basierend auf Werten eines anderen Datenrahmens, die beide unterschiedlich lang sind

Erstellen Sie eine neue Spalte im R-Datenrahmen basierend auf den Ergebnissen aus 3 anderen Spalten

Erstellen Sie eine neue Spalte im Datenrahmen basierend auf einer anderen Spalte in R

TOP Liste

  1. 1

    So legen Sie mit dem Interface Builder unterschiedliche führende Speicherplätze für unterschiedliche Geräte fest

  2. 2

    Fügen Sie eine weitere Schaltfläche zu gwt Suggest Box hinzu

  3. 3

    Wie konvertiere ich einen Vektor von Bytes (u8) in eine Zeichenfolge?

  4. 4

    Wie kann ich in SCSS mehrere Klassen zu einer einzigen kombinieren?

  5. 5

    Wie konvertiert man einen Datenrahmen im langen Format in eine Liste mit einem geeigneten Format?

  6. 6

    Speichern Sie ein MPAndroidChart-Diagramm in einem Bild, ohne es in einer Aktivität anzuzeigen

  7. 7

    Gruppieren Sie Datenrahmenspalten nach ihrem Datum (die Spaltentitel enthalten) und fassen Sie die Instanzen von Einsen und Nullen in R . zusammen

  8. 8

    Tomcat - Leiten Sie den alten Kontextstamm zum neuen Kontextstamm um

  9. 9

    Eclipse Oxygen - Projekte verschwinden

  10. 10

    Wie wählt man Unterschiede mit drei Tabellen aus?

  11. 11

    Tic Tac Toe-Spiel im React-Reset-Button funktioniert nicht

  12. 12

    So berechnen Sie die Verfügbarkeit von Anwendungen (SLA)

  13. 13

    ElasticSearch BulkShardRequest ist aufgrund von org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor fehlgeschlagen

  14. 14

    Wie kann ich den Kaskadenmodus global einstellen?

  15. 15

    Python: Spalten mit demselben Namen zusammenführen, wobei der Mindestwert beibehalten wird

  16. 16

    So erhalten Sie eine gleichmäßige Höhe für alle Eingabefelder

  17. 17

    Wie erstelle ich einen neuen übergeordneten Knoten außerhalb der .ref (/ path) in der Firebase-Echtzeitdatenbank mithilfe von Cloud-Funktionen (Typescript)?

  18. 18

    Was ist schneller: SUM über NULL oder über 0?

  19. 19

    Wie kann ich eine verschachtelte Schleife mit lapply in R ersetzen?

  20. 20

    Kann ich ein Tkinter-Canvas erstellen, das mehrere Zeilen in einem Text-Widget umfasst?

  21. 21

    Ärgerliches Problem mit yaml, das ich nicht lösen kann

heißlabel

Archiv