I df1
mit einigen Variablen, da für bestimmte Werte A einen Datenrahmen haben:Halten Sie nur Datenrahmen Zeilen am nächsten Werte gegeben
df1 = pd.DataFrame({"A": [110.035,110.078,110.732,112.828,112.930],
"var1": np.random.random(5),
"var2":np.random.random(5)})
A var1 var2
0 110.035 0.500537 0.571497
1 110.078 0.234550 0.732815
2 110.732 0.337149 0.098250
3 112.828 0.190261 0.366118
4 112.930 0.990539 0.892640
und einem Datenrahmen df2
von A-Werten wie
df2 = pd.DataFrame({"A": [110.04, 112.83]})
A
0 110.04
1 112.83
I Now Ich möchte alle Werte in df1 behalten, die einem der Werte in df2 am nächsten kommen und alle anderen löschen. In meinem Beispiel möchte ich nur die Zeilen 0 und 3 behalten.
Meine Idee ist es, die absoluten Differenzen und verwenden argsort() zu bauen:
(df1.A-x).abs().argsort()[:1]
aber das funktioniert für einen Wert x
nur, wie kann ich dies in df2 auf alle Werte verlängern?
Was ist der Toleranzwert? –
Spielt es eine Rolle? Ich brauche nur den nächsten, egal wie weit weg es ist. – datasailor
..... Ähm, okay. –