如何从具有共同列值的两个数据帧中获取合并数据帧,以便仅那些行使特定列中具有共同值的合并数据帧。

我有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/

10-09 16:45
查看更多