GOOGLE ADS

Samstag, 16. April 2022

Ändern Sie die NaN-Werte mit dem zurückgegebenen Wert der API

Ich muss die NaN-Werte in einer Spalte mit dem zurückgegebenen Wert einer API ändern. Ich habe bereits eine Funktion geschrieben, die die Funktion aufruft und einen Wert zurückgibt, aber ich bin mir nicht sicher, wie ich die Werte jetzt ändern soll. Muss ich den gesamten DataFrame durchlaufen oder gibt es andere Lösungen? Der Datenrahmen sieht so aus:































Spaltenname1Spaltenname2Spaltenname3
ein23
456
7achtneun
NaNelf12

Lösung des Problems

Sie können verwenden apply. Das Beste ist, zuerst die Zeilen mit NaNs zu unterteilen, um zu vermeiden, dass die API für die anderen Werte angefordert wird:

def api_func(a, b):
return 10
# mask of the rows with NaN in colname1
m = df['colname1'].isna()
# output of API request
s = df.loc[m].apply(lambda r: api_func(r['colname2'], r['colname3']), axis=1)
# updating the column (in place)
df['colname1'].update(s)

Ausgang:

 colname1 colname2 colname3
0 1.0 2 3
1 4.0 5 6
2 7.0 8 9
3 10.0 11 12

Keine Kommentare:

Kommentar veröffentlichen

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...