首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果其他行数据匹配,则选择行数据

如果其他行数据匹配,则选择行数据
EN

Stack Overflow用户
提问于 2020-01-14 01:13:29
回答 2查看 62关注 0票数 0

我有数据帧:

代码语言:javascript
复制
   import pandas as pd
   df = pd.read_csv('data.csv')
   df.head()

               title                    poster
     0       Toy Story       https://images-na.ssl-images-amazon.com/images...
     1       Jumanji         https://images-na.ssl-images-amazon.com/images...

我想创建一个函数,它将接受电影片名作为输入,并返回海报链接作为输出。我尝试了以下方法,但不起作用:

代码语言:javascript
复制
def function_to_return_link(movie_name):
     if df['title'].str.contains(movie_name).any():
            print('Movie present in df')
            out = df.loc[df['title'] == movie_name]
            print(out)
     else:
        print('Movie is not present')

它将输出显示为:

代码语言:javascript
复制
function_to_return_link('Toy Story')

Movie present in df
Empty DataFrame
Columns: [title, poster]
Index: [] 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-14 01:48:53

df.loc[..., 'poster']返回包含所选电影的pd.Series。然后,使用pd.Series.iat获取所选内容中的第一个值(通过索引)。如果电影不存在,那么它将引发一个IndexError。

代码语言:javascript
复制
def function_to_return_link(movie_name):
    posters = df.loc[df['title'].str.contains(movie_name), 'poster']
    try:
        link = posters.iat[0]
    except IndexError:
        print('Movie is not present')
    else:
        return link

请注意,这不包括重复条目(多个条目)。要解决这个问题,您可以执行下面的操作(尽管它可能比try/except更容易使用pythonic )。

代码语言:javascript
复制
def function_to_return_link(movie_name):
    posters = df.loc[df['title'].str.contains(movie_name), 'poster']
    if len(posters) > 1:
        print('Multiple hits')
    elif len(posters) == 0:
        print('Movie is not present')
    else:
        return posters.iat[0]
票数 0
EN

Stack Overflow用户

发布于 2020-01-14 01:25:30

这是一种你可以做到的方法:

代码语言:javascript
复制
def function_to_return_link(movie_name):
    if movie_name in pos['title']:
        return pos.query("title == @movie_name")['poster']
    else:
        print('Movie is not present')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59721106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档