Ich habe einen DataFrame von people
. Eine der Spalten in diesem DataFrame ist eine place_id
. Ich habe auch einen DataFrame von Orten, wo eine der Spalten place_id
ist und ein anderer ist weather
. Für jede Person versuche ich das entsprechende Wetter zu finden. Wichtig ist, viele Leute haben die gleichen place_id
s. diesePandas langsam. Willst zuerst Auftreten in DataFrame
Derzeit ist mein Setup:
def place_id_to_weather(pid):
return place_df[place_df['place_id'] == pid]['weather'].item()
person_df['weather'] = person_df['place_id'].map(place_id_to_weather)`
Aber das ist unvertretbar langsam. Ich möchte das beschleunigen. Ich vermute, dass ich ein Speedup wie dies erreichen könnte:
Statt place_df[...].item()
der Rückkehr, die für place_id == pid
für die gesamte Spalte eine Suche macht und eine Reihe zurückgibt, und dann in dieser Serie das erste Element greifen, ich möchte wirklich nur zu kürzen Sie die Suche in place_df
nach dem ersten Spiel place_df['place_id']==pid
wurde gefunden. Danach muss ich nicht weiter suchen. Wie beschränke ich die Suche nur auf erste Vorkommen?
Gibt es andere Methoden, die ich verwenden könnte, um hier eine Beschleunigung zu erreichen? Eine Art Join-Type-Methode?