前提・実現したいこと
pandasの2つのデータフレームが、以下の例のように存在しています。
ここで、それぞれの2つのカラム名を閾値をもとに前方一致させ、それらをキーにしてデータをマージしたいと考えております。
インプットのデータフレームの例
df = name, size 犬Aの小さい個体の体長, 15 猫Aの小さい個体の体長, 13 金魚Aの体長, 1 犬Aの大きい個体の体長, 110 猫Aの大きい個体の体長, 100 master_df = name, number_of_types 犬, 700 猫, 500 金魚, 100 :
アウトプットのデータフレームの例
output_df = name, number_of_types 犬, 700, 犬Aの小さい個体の体長, 15 犬, 700, 犬Aの大きい個体の体長, 110 猫, 500, 猫Aの小さい個体の体長, 13 猫, 500, 猫Aの大さい個体の体長, 100 金魚, 100, 金魚Aの体長, 1 :
参考:エクセル上での抽出イメージ
前方一致検索でVLOOKUPを使うと出来ます。
このような内容をpythonで書きたいです。
https://office-hack.com/excel/vlookup-wildcard/
考えたこと
完全一致や部分一致で特定のdfから条件に合うものは、以下のように書けると思います。
df_master['name'] == '犬' df['name'].str.contains('犬', na=False)
上記のような抽出のイメージはあるのですが、2つのpandasのデータフレーム上で検索して前方一致でマージする方法についてお知恵を拝借できましたら幸いです。
何卒よろしくお願い申し上げます。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。