为什么这个函数 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
我定义了一个相当简单的函数,但它有一个意外的输出。我正在使用 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