NameError:未定义名称“mean”

NameError: name 'mean' is not defined

提问人:unstuck 提问时间:8/15/2021 更新时间:8/15/2021 访问量:18543

问:

计算基本统计数据,我得到以下内容:

import pandas as pd    

max(df[Price]) 
min(df[Price]) 

但是,这会返回一个错误:

mean(df[Price]) 

NameError: name 'mean' is not defined

我只是想理解其中的逻辑。

这个效果很好:

df[Price].mean()

什么样的统计信息在点之后起作用,哪些统计信息必须包装在列中?

评论

4赞 AKX 8/15/2021
尝试将其理解为“在点之后”和“换行列”并不是一个好主意。您可能需要阅读 Python 教程来了解这两者的实际含义(分别是方法调用和函数调用)。
1赞 unstuck 8/15/2021
@AKX当然,非常感谢。我读过很多,也许这就是问题所在。虽然方法和函数之间的区别很明显,但从统计学家的角度来看,这是没有意义的
2赞 Kishore Sampath 8/15/2021
min和 是 Python 默认提供的函数。没有默认函数,因此当您尝试 python 尝试查找任何用户定义的函数时,它会尝试查找任何名为 .是库提供的功能。参考这里maxmeanmean(df[Price])meanNameErrormeandf[Price].mean()Pandas
3赞 Samwise 8/15/2021
放在脚本的顶部,你会得到一个函数,它把一个可迭代作为它的参数,类似于内置的和函数。from statistics import meanmeanmaxmin

答:

4赞 AKX 8/15/2021 #1

min() 和 max() 是作为 Python 内置函数提供的函数。

你可以在任何迭代对象上使用它们,包括 Pandas 系列,这就是你所做的事情有效的原因。

Pandas 还提供 .min().max() 作为序列和数据帧的方法,例如 也会起作用。系列函数的完整列表在这里;此处是 DataFrame 函数的完整列表。df["Price"].min()

如果你确实想使用一个名为 的自由函数,例如,当你有一个不是 Pandas 系列的东西并且你不想将其转换为一个时,Python 标准库中确实存在一个,但你必须导入它:mean()

from statistics import mean

评论

0赞 unstuck 8/15/2021
好的,为了使代码保持一致,那么也许我应该始终导入 pandas 并始终引用方法并忘记函数。
1赞 AKX 8/15/2021
如果你正在处理 Pandas 对象,那么是的,尽可能使用这些方法可能会更好(也可能更快)。