繁体   English   中英

如何根据另一个 dataframe 的值过滤行 dataframe

[英]How to filter row dataframe based on value of another dataframe

如何从来自另一个 dataframe 的流派列中获取基于过滤器的数据行?

我有一部电影 dataframe 如下:

电影名称 类型 评分
万圣节 犯罪、恐怖、惊悚 6.5
没有 恐怖、悬疑、科幻 6.9
午夜俱乐部 剧情、恐怖、悬疑 6.7
北方人 动作, 冒险, 剧情 7.1
猎物 动作, 冒险, 剧情 7.2
神秘海域 动作、冒险 6.3
舍伍德 犯罪、剧情、悬疑 7.4

我有一个用户 dataframe 如下:

用户身份 用户名 类型
100 恐怖、惊悚、剧情

我想获取以下行作为 output,因为用户喜欢恐怖、惊悚和戏剧类型。

电影名称 类型 评分
万圣节 犯罪、恐怖、惊悚 6.5
没有 恐怖、悬疑、科幻 6.9
午夜俱乐部 剧情、恐怖、悬疑 6.7
北方人 动作, 冒险, 剧情 7.1
猎物 动作, 冒险, 剧情 7.2
舍伍德 犯罪、剧情、悬疑 7.4

如何获取电影行,其中流派列中的值至少与用户的流派首选项之一匹配?

尝试这个:

pattern = user['Genre'].str.replace(', ', '|')[0]
result = movies.query('Genre.str.contains(@pattern)')
print(result)

该示例使用 for 循环获取 df2 上每个用户的列表

import pandas as pd
df=pd.read_csv("db1.csv",header=[0]) # movies
df2=pd.read_csv("db2.csv",header=[0]) # users

for ir,row in df2.iterrows():
    gen=row["Genre"].replace(",","|").replace(" ","")
    filtereddf=df[df["Genre"].str.contains(gen)]
    

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM