共通の列値を持つ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行も得られなかった。
2つのデータフレームをマージする方法はいくつかあります。pythonで最も一般的な方法は、Pandasのマージ操作を使用することです。
import pandas
dfinal = df1.merge(df2, on="movie_title", how = 'inner')
例えば 'movie_title'
を 'movie_name'
のように指定します。
dfinal = df1.merge(df2, how='inner', left_on='movie_title', right_on='movie_name')
さらに詳しく知りたい場合は、pandas merge
のドキュメントを参照してください。
2つのデータフレームをマージし、両方のデータフレームから共通の値だけを表示するマージされたデータフレームが欲しい場合は、インナーマージを行ってください。
import pandas as pd
merged_Frame = pd.merge(df1,df2, on = id,how=inner)