Python 代码在编写时有效,但在定义时无效

Python 代码在编写时有效,但在定义时无效,python,pandas,function,Python,Pandas,Function,我在这里和编程界都是新手,所以这可能是一个答案相当简单的问题,但我就是不明白。 我用Jupyter笔记本 我想对某些分数求和,当我正常输入代码时,它可以完美地工作: select_df = df.filter(like = 'ABC') select_df = select_df.loc[(df.REF == '000')] select_df.sum(axis=1) 但当我定义函数并像这样尝试时,它不起作用: def sum_score(a, b): select_df = df.f

我在这里和编程界都是新手,所以这可能是一个答案相当简单的问题,但我就是不明白。 我用Jupyter笔记本

我想对某些分数求和,当我正常输入代码时,它可以完美地工作:

select_df = df.filter(like = 'ABC')
select_df = select_df.loc[(df.REF == '000')]
select_df.sum(axis=1)
但当我定义函数并像这样尝试时,它不起作用:

def sum_score(a, b):
    select_df = df.filter(like = a)
    select_df = select_df.loc[(df.REF == b)]
    select_df.sum(axis=1)

sum_score('ABC', '000')
当我把它打成:

print(sum_score('ABC', '000'))

它只是说“无”

您必须
从函数返回
df:

def sum_score(qu, vc):
    select_df = df.filter(like = qu)
    select_df = select_df.loc[(df.REF == vc)]
    select_df.sum(axis=1)
    return select_df # Return the df
然后像这样调用函数:

print(sum_score('ABC', 'V000'))
这将有助于:

def sum_score(qu, vc):
    select_df = df.filter(like = qu)
    select_df = select_df.loc[(df.REF == vc)]
    return select_df.sum(axis=1)

print(sum_score('ABC', 'V000'))

函数没有返回任何结果的u。 您可以将return添加到函数的最后一行,以获取结果并使用/打印它

def sum_score(qu, vc):
    select_df = df.filter(like = qu)
    select_df = select_df.loc[(df.REF == vc)]
    return select_df.sum(axis=1)
你可以得到如下结果:

sum_res = sum_score('ABC', 'V000')
print(sum_res)


添加一个
返回
行。您的函数现在不返回任何内容
print(sum_score('ABC', 'V000'))