私はpeople
というデータフレームを持っています。このDataFrameの列の1つはplace_id
です。私はまた、列の1つがplace_id
であり、もう1つがweather
である場所のDataFrameを持っています。すべての人にとって、私は対応する天気を見つけようとしています。重要なことに、多くの人が同じplace_id
を持っています。パンダスロー。 DataFrameで最初に発生したい
現在、私のセットアップはこれです:
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)`
しかし、これはuntenably遅いです。私はこれをスピードアップしたいと思います。私はこのような高速化を達成できることを疑う:その列全体のためにplace_id == pid
の検索を行い、シリーズを返しplace_df[...].item()
を返し、その後、そのシリーズの最初の項目をつかむの代わりに
を、私は本当にただしたいです最初の一致がplace_df['place_id']==pid
の後にplace_df
で検索を縮小します。その後、私はそれ以上検索する必要はありません。最初のオカレンスのみに検索を限定するにはどうすればよいですか?
ここでスピードアップを達成するために使用できる他の方法はありますか?結合型のメソッドのいくつかの種類ですか?