簡體   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