ich den Folgedatenpunkt in Panda Datenrahmen haben:Lambda-Funktion zwei Arten von Berechnungen haben
DateTime Data
2017-11-21 18:54:31 1
2017-11-22 02:26:48 2
2017-11-22 10:19:44 3
2017-11-22 15:11:28 6
2017-11-22 23:21:58 7
2017-11-28 14:28:28 28
2017-11-28 14:36:40 0
2017-11-28 14:59:48 1
Ich möchte eine Funktion anwenden konvertieren alle Daten größer als 1 Werte bis 1: gibt es einen Weg die folgenden zwei Lambda-Funktionen in einer (wie eine else-Anweisung) zu kombinieren?
[(lambda x: x/x)(x) for x in df['Data'] if x > 0]
[(lambda x: x)(x) for x in df['Data'] if x <1 ]
Endergebnis gewünscht:
df['Data'] = df['Data'].clip_upper(1)
Oder boolean Maske ge
(>=
) verwenden und konvertieren zu int
, wenn keine negativen Werte:
DateTime Data
2017-11-21 18:54:31 1
2017-11-22 02:26:48 1
2017-11-22 10:19:44 1
2017-11-22 15:11:28 1
2017-11-22 23:21:58 1
2017-11-28 14:28:28 1
2017-11-28 14:36:40 0
2017-11-28 14:59:48 1
Dies ist eine großartige Antwort und np ist wirklich mächtig, ich werde jedoch Pick Jezrael als beste Antwort, da es datafram die interne Funktion verwendet. Ich weiß es trotzdem zu schätzen. – user97662
@ user97662 kein Problem. Ich kann deine Entscheidung respektieren. Glückliche Kodierung. –
@ user97662 Obwohl ich Ihre Aufmerksamkeit auf die Tatsache lenken sollte, dass meine Antwort 9 Mal besser ist als die schnellste Antwort von Jezrael. Schau dir meine Zeit an. Wenn Leistung wichtig ist, ermutige ich Sie, das zu überdenken. –