Python函数return语句失效:无法返回切片后的DataFrame怎么办?
问题原因与解决方法
核心问题是你没有正确接收函数的返回值,或是存在变量/函数命名冲突,导致你引用到的是函数对象而非生成的DataFrame。
解决步骤
正确接收返回值
调用函数时,必须将返回结果赋值给一个变量,而不是直接使用未赋值的同名标识符:# 正确示例:把返回的DataFrame赋值给变量 positive_result = positive_df(df, 'Google', 'Positive emotion') # 查看结果类型,确认是DataFrame print(type(positive_result))如果你之前直接写
print(positive),而恰好代码里有同名的positive函数,就会输出函数对象<function __main__.positive(...)>。优化函数内的dropna操作(可选)
当前使用positive.dropna(inplace=True)可能触发SettingWithCopyWarning(因为切片可能是原DataFrame的视图),建议改成返回新的DataFrame对象:def positive_df(df, product_service, emotion): product_df = df[df['product_service'] == product_service] # 链式调用dropna,直接返回新对象 positive = product_df[product_df['emotion'] == emotion].dropna() return positive排查命名冲突
检查代码中是否存在名为positive的其他函数或变量,比如之前定义过def positive(...):,这会导致你误引用旧的函数对象而非本次调用生成的DataFrame。
内容的提问来源于stack exchange,提问作者rahul
相关产品推荐
相关产品推荐

