Python:未定义全局名称“maximum”

时间:2016-07-20 01:25:24

标签: python numpy pandas

我有一个如下所示的数据框:

df = pd.DataFrame({'A':[100,300,500,600], 
                   'B':[100,200,300,400], 
                   'C':[1000,2000,3000,4000], 
                   'D':[1,4,5,6],
                   'E':[2,5,2,7]})

当将成对最大值应用于任意两列时,使用

maximum(df.A,df.B)

我收到错误说

NameError: global name 'maximum' is not defined

我的印象是,只有在使用尚未分配的变量时才会出现此错误。但是,最大功能应该在numpy中工作。我知道我可以申请

df[['A','B']].apply(max) 

但我担心错误的原因。为什么抱怨没有定义保留的函数关键字?

2 个答案:

答案 0 :(得分:4)

你错过了" np。"导入numpy为np后的任何机会。这是我的MacBook输出:

>>> import numpy as np
>>> np.maximum(df.A,df.B)
0    100
1    300
2    500
3    600
Name: A, dtype: int64

答案 1 :(得分:1)

熊猫替代品:

In [32]: df[['A','B']].max().max()
Out[32]: 600

一步步骤:

In [31]: df[['A','B']].max()
Out[31]:
A    600
B    400
dtype: int64

如果您每行最多需要:

In [35]: df[['A','B']].max(axis=1)
Out[35]:
0    100
1    300
2    500
3    600
dtype: int64