Pandasで共通の列値に基づいて2つのデータフレームをマージする
共通の列値を持つ2つのデータフレームからマージされたデータフレームを取得する方法。
私は df1
の5000行を持っている。
director_name actor_1_name actor_2_name actor_3_name movie_title
0 James Cameron CCH Pounder Joel David Moore Wes Studi Avatar
1 Gore Verbinski Johnny Depp Orlando Bloom Jack Davenport Pirates
of the Caribbean: At World's End
2 Sam Mendes Christoph Waltz Rory Kinnear Stephanie Sigman Spectre
として10000行、df2
として
movieId genres movie_title
1 Adventure|Animation|Children|Comedy|Fantasy Toy Story
2 Adventure|Children|Fantasy Jumanji
3 Comedy|Romance Grumpier Old Men
4 Comedy|Drama|Romance Waiting to Exhale
共通のカラム 'movie_title'には共通の値があり、それに基づいて 'movie_title'が同じ行をすべて取得したい。その他の行は削除する。
どのようなヘルプ/提案でも結構です。
注:すでに
pd.merge(dfinal, df1, on='movie_title')
を試しましたが、出力は一行
director_name actor_1_name actor_2_name actor_3_name movie_title movieId title genres
また、="outer"/"left"、"right"の方法について、すべて試してみたが、NaNを落としても1行も得られなかった。
26
3
pd.merge`]1を使うことができる:
両方のデータフレームで共通のキーが見つかった行のみが保持される。左側のデータフレームからすべての行を保持し、一致するキーがある
df2
の値のみを追加したい場合は、how="left"
を使用します。2つのデータフレームをマージする方法はいくつかあります。pythonで最も一般的な方法は、Pandasのマージ操作を使用することです。
例えば
'movie_title'
を'movie_name'
のように指定します。さらに詳しく知りたい場合は、pandas
merge
のドキュメントを参照してください。2つのデータフレームをマージし、両方のデータフレームから共通の値だけを表示するマージされたデータフレームが欲しい場合は、インナーマージを行ってください。