我有一个如下所示的数据框:
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)
但我担心错误的原因。为什么抱怨没有定义保留的函数关键字?
答案 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