为什么这个函数 return 是一个元组?

Why does this function return a tuple?

我定义了一个相当简单的函数,但它有一个意外的输出。我正在使用 Steam 游戏评论,并想使用一个功能来缩小基于游戏标题的范围。这很好用:

one_game = games[games['title'] == "Robocraft"]

输出是一个与原始数据帧一样的数据帧。但是,当我尝试创建一个函数(通过将相同的游戏名称作为参数传递)来对数据帧进行如下切片时:

def slice(game):
    out = games[games['title'] == game],
    return(out)

我得到一个“[362 行 x 5 列],)”的元组,而不是数据框。这是因为 return 命令还是当您使用用户定义的函数时发生的事情?

这似乎是我需要做的就是将元组转换回数据框。但是,我什至不能那样做!当我这样做时,出现此错误:

"ValueError: Must pass 2-d input. shape=(1, 362, 5)"

如何获取数据框作为我的输出?

谢谢!

你的函数第一行末尾的逗号就是问题所在。它将前面的值包装在一个元组中,参见:

>>> 1
1

>>> 1,
(1,)

>>> a = 1
>>> type(a)
1

>>>> a = 1,
>>> type(a)
tuple

所以只需删除逗号,(以及 return 之后的括号,因为 return 是关键字,而不是函数):

def slice(game):
    out = games[games['title'] == game]
    return out