如何从具有共同列值的两个数据帧中获取合并数据帧,以便仅那些行使特定列中具有共同值的合并数据帧。
我有5000行df1
作为格式:-
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之后没有得到任何行。
最佳答案
您可以使用 pd.merge
:
import pandas as pd
pd.merge(df1, df2, on="movie_title")
仅保留在两个数据帧中都找到了公共(public)密钥的行。如果您想保留左侧数据框中的所有行,并且仅从
df2
中添加匹配键可用的值,则可以使用how="left"
。关于pandas - 根据Pandas中的公共(public)列值合并两个数据帧,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43297589/