猿问

Python Pandas:将一列的值检查到另一个数据框的列中

我有两个数据框,如下所示:


df:


         Review Text                                        Noun                                             Thumbups   Rating

    I've been using this app for over a month. It ...   [app, month, job, track, ATV, replay, animatio...         2.0   4

    Would be nice to be able to import files from ...   [My, Tracks, app, phone, Google, Drive, import...         6.0   5

    When screen off it shows a straight line. Not ...   [screen, line, route]                                     1.0   3

    No Offline Maps! It used to have offline maps ...   [Offline, Maps, menu, option, video, exchange,...         20.0  1

    Great application. Designed with very well tho...   [application, application]                                20.0  5

    Great App. Nice and simple but accurate. Wish ...   [Great, App, Nice, Exported]                                0.0 5

    Does just what it says. Had a couple of questi...   [couple, service]                                         0.0   5

    Save For Offline - This does not work. The rou...   [Save, Offline, route, filesystem]                       12.0   1

    Since latest update app will not run. Subscrip...   [update, app, Subscription, March, application]           9.0   5

    Great app. Love it! And all the things it does...   [Great, app, Thank, work]                                1.0    5

    I have paid for subscription but keeps telling...   [subscription, trial, period]                            0.0    2

    Error: The route cannot be save for no locatio...   [Error, route, i, GPS]                                   0.0    2

df1:


Noun    Thumb_count

accuracy    1.0

almost      1.0

animation   2.0

antarctica  1.0

app         25.0

application 29.0

apps        1.0

atv         2.0

august      3.0

battery     1.0

我想检查 df1 的“Noun”列的值是否出现在 df 的“Noun”列中,然后在 df1 中创建一个名为“average”的新列,并取 df 行的“Rating”列的平均值,其中 Noun现值。




绝地无双
浏览 195回答 1
1回答

人到中年有点甜

样本输出会非常有用。在没有它的情况下,我的尝试;df.Noun=df.Noun.str.strip('[]')#Strip corner bracketsdf.Noun=df.Noun.str.split(",")#Make list again.df=df.explode('Noun')#Get each item in df.Noun df[df.Noun.str.contains(('|').join(df1.Noun.values.tolist()))]#Check membershipdf.groupby('Noun')['Rating'].mean()
随时随地看视频慕课网APP

相关分类

Python
我要回答