I have defined a fairly simple function that is having an unexpected output. I’m using Steam game reviews and want to use a function to narrow the scope based on game title. This works fine:
one_game = games[games['title'] == "Robocraft"]
The output is a dataframe just like the original. However, when I try to make a function (by passing the same game name as an argument) to slice the dataframe as follows:
def slice(game): out = games[games['title'] == game], return(out)
I get a tuple that is "[362 rows x 5 columns],)" instead of a dataframe. Is that because of the return command or is that just something that happens when you use a user defined function?
This seems like all I would need to do is convert the tuple back to a dataframe. However, I can’t even do that! When I do, I get this error:
"ValueError: Must pass 2-d input. shape=(1, 362, 5)"
How can I get a dataframe as my output?
The comma at the end of the first line of your function is the problem. It wraps the preceding value in a tuple, see:
>>> 1 1 >>> 1, (1,) >>> a = 1 >>> type(a) 1 >>>> a = 1, >>> type(a) tuple
So just remove that comma, (and the parentheses after
return is a keyword, not a function):
def slice(game): out = games[games['title'] == game] return out
Answered By – richardec
Answer Checked By – Senaida (BugsFixing Volunteer)