Ersetzen Sie Pandas-Datenrahmenspalten durch einen anderen Datenrahmen, der auf einer bestimmten Spalte basiert

Tenshi

Ich habe zwei Datenrahmen mit vielen Spalten df1, df2, und ich möchte alle df1-Werte (außer den Zeitspalten) durch die Daten aus df2-Spalten ersetzen, bei denen die Zeitwerte gleich sind:

df1:

index time   x y   ......many other columns ( the same as df2)
0       1    1 1
1       1.1  2 2
2       1.1  3 3
3       1.1  4 4
4       1.4  5 5
5       1.5  6 6
6       1.5  7 7


df2:

index time  x   y   ....many other columns (the same as df1)
0       1   10  10
1       1.1 11  11
2       1.2 12  12
3       1.3 13  13
4       1.4 14  14
5       1.5 15  15
6       1.6 16  16



the result for df1 should be:

index time  x   y   ....many other columns 
0       1    10 10
1       1.1  11 11
2       1.1  11 11
3       1.1  11 11
4       1.4  14 14
5       1.5  15 15
6       1.5  15 15


Sophods

Ich glaube, ich konnte mein Denken in Ordnung bringen und habe hoffentlich eine Lösung gefunden, die für Sie funktioniert.

Versuchen Sie dies, Sie können Ihre Antwort erhalten, indem Sie Folgendes verwenden combine_firstund einige Optimierungen vornehmen:

  1. combine_firstFüllt Nullwerte aus einem anderen dataframe, sodass Sie zuerst alle Werte (außer in der Spalte 'Zeit') durch ersetzen können np.nan. Beachten Sie, dass ich die Spalte 'Zeit' als index.

  2. Da combine_firstdie Vereinigung der beiden Datenrahmen zurückgegeben wird, können Sie isinnur die Zeitwerte df1in Ihrer endgültigen Ausgabe abrufen .

import numpy as np
import pandas as pd

df1[df1.columns.difference(['time'])] = np.nan
res = df1.set_index('time').combine_first(df2.set_index('time')).reset_index()
li = [i for i in df1['time'].unique()]

final= res[res['time'].isin(li)]

Welches wird Sie bekommen:

   time     x     y
0   1.0  10.0  10.0
1   1.1  11.0  11.0
2   1.1  11.0  11.0
3   1.1  11.0  11.0
6   1.4  14.0  14.0
7   1.5  15.0  15.0
8   1.5  15.0  15.0

Probieren Sie es mit Ihrem aktuellen Datensatz aus und lassen Sie mich wissen, ob es funktioniert.

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

Ersetzen Sie die Werte der Spalte durch den Mittelwert, der in einer anderen Spalte in Pandas einen bestimmten Wert hat

Ersetzen Sie in R einen Wert durch NA, der auf Übereinstimmungen eines Zeichens in einer benachbarten Spalte basiert

So ersetzen Sie pandas dataframe Spalte A Der Wert basiert auf dem Wert einer anderen Spalte B.

Ersetzen Sie die Zeichenfolgenspalte mit bestimmten Teilzeichenfolgen unter der Bedingung einer anderen Spalte durch Pandas

Pandas: Ersetzen Sie Werte innerhalb einer bestimmten Spalte eines Datenrahmens basierend auf einer Spalte in einem anderen Datenrahmen

Ersetzen Sie einen Teil der Zeichenfolge durch den Wert pandas + python einer anderen Spalte

Fügen Sie der Spalte einen Wert hinzu, der auf einer anderen Spalte basiert

Fügen Sie der Spalte einen Wert hinzu, der auf einer anderen Spalte basiert

Ersetzen des Werts in einer Spalte im Pandas-Datenrahmen durch einen Spaltenwert in einem anderen Datenrahmen

So weisen Sie einer Spalte einen Wert zu, der auf dem Wert in einer anderen Spalte im R-Datenrahmen oder in der Datentabelle basiert

Ersetzen Sie Werte basierend auf Monaten in einem Datenrahmen durch Werte in einer anderen Spalte in r mithilfe der Apply-Funktionen

So weisen Sie einer Spalte Text zu, der auf einem anderen Datenrahmen in r basiert

Ersetzen der Spalte durch einen anderen Datenrahmen basierend auf der Namensübereinstimmung

Pandas: Ersetzen Sie jeden Wert in jeder Spalte, der einem Muster entspricht, durch einen Wert aus einer anderen Spalte in dieser Zeile

Python weist einer neuen Spalte einen Wert zu, der auf dem Wert einer anderen Spalte basiert (ermittelt durch numerische Indizierung).

R: Ändern Sie den Wert in einer Spalte in einen Wert, der auf einer anderen Spalte basiert, wenn NA in einer Spalte

Ersetzen Sie einen Wert im Datenrahmen durch eine andere Spalte aus einer anderen Tabelle

So ersetzen Sie die Werte in einer Spalte im Pandas-Datenrahmen basierend auf der Prüfung aus einer anderen Tabelle

Filtern Sie einen Pandas-Datenrahmen basierend auf bestimmten Monatswerten und abhängig von einer anderen Spalte

Ersetzen Sie Werte in einem Datenrahmen durch Werte aus einem anderen Datenrahmen, wenn ein gemeinsamer Wert in einer bestimmten Spalte gefunden wird

Ersetzen Sie die leere Liste durch Werte in einer anderen Spalte im Pandas-Datenrahmen

Ersetzen Sie Pandas-Werte in einer Spalte durch Nachschlagen in einem anderen Datenrahmen

Erstellen Sie eine neue Spalte, indem Sie die durch Kommas getrennten Spaltenwerte durch eine Suche ersetzen, die auf einem anderen Datenrahmen basiert

So erstellen Sie einen Datenrahmen aus einer Spalte in einem anderen Datenrahmen, der durch Komma ','

Pandas ersetzen NaNs durch den Modus einer anderen Spalte basierend auf der zweiten Spalte

Gruppieren Sie einen Datensatz in einer Liste, der auf einer wiederholten Spalte in Pandas Python basiert

Pandas Multindex DataFrame: Ersetzen Sie bestimmte Werte durch Werte aus einer anderen Spalte auf der 2. Ebene

So ersetzen Sie einen Wert in einem Datenrahmen basierend auf einem Wert in einer anderen Spalte

Basierend auf bestimmten Werten in einer Spalte, aktualisieren Sie eine andere Spalte in einem anderen Datenrahmen Pandas