NameError:名称“意思”未定义

Posted

技术标签:

【中文标题】NameError:名称“意思”未定义【英文标题】:NameError: name 'mean' is not defined 【发布时间】:2021-12-14 07:36:12 【问题描述】:

计算基本统计数据,我得到以下工作正常:

import pandas as pd    

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

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

mean(df[Price]) 

NameError: name 'mean' is not defined

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

这个效果很好:

df[Price].mean()

点之后有哪些统计信息,哪些必须换行?

【问题讨论】:

尝试将其理解为“点后”和“列换行”并不是一个好主意。您可能想阅读 Python 教程以了解这两个实际上是什么(分别是方法调用和函数调用)。 @AKX 当然,非常感谢。我读了很多,也许这就是问题所在。虽然方法和函数之间的区别很明显,但从统计学家的角度来看,它只是没有意义 minmax 是 python 默认提供的函数。没有默认的mean 函数,因此当您尝试mean(df[Price]) 时,python 会尝试查找任何名为mean 的用户定义函数,并在找不到任何名为mean 的函数时引发NameErrordf[Price].mean()Pandas 库提供的函数。参考here from statistics import mean放在你的脚本的顶部,你会得到一个mean函数,它接受一个可迭代作为它的参数,类似于内置的maxmin函数。 【参考方案1】:

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

您可以在任何可迭代对象上使用它们,包括 Pandas 系列,这就是您所做的工作的原因。

Pandas 还提供 .min().max() 作为系列和数据帧的方法,例如df["Price"].min() 可以工作。系列函数的完整列表是here; DataFrame 函数的完整列表是here。

如果您确实想使用名为 mean() 的免费函数,例如当您有一些不是 Pandas 系列的东西并且您不想将其转换为一个时,实际上是一个 does exist in the Python standard library,但您必须导入它:

from statistics import mean

【讨论】:

好吧,为了代码一致,也许我应该总是导入pandas,总是引用方法而忘记函数。 如果您正在使用 Pandas 对象,那么是的,尽可能使用这些方法可能会更好(也可能更快)。

以上是关于NameError:名称“意思”未定义的主要内容,如果未能解决你的问题,请参考以下文章

NameError:名称'unicode'未定义[重复]

NameError:名称'python'未定义[关闭]

NameError:名称“”未定义[关闭]

Buildozer:NameError:未定义名称'functools'

NameError:未定义全局名称“reduce”

NameError:未定义名称“convertToBinaryData”