考虑这个简单的代码(Data Frames
中的numpy.sum
代表使用numpy的更复杂的双变量函数):
loc_fun
上面代码中的最后一行导致了一个我无法理解的错误。
基本上,我想将import pandas
import numpy
def loc_fun(A, B):
return numpy.sum(A[:-1] > B[-1])
df = pandas.DataFrame(numpy.random.normal(0, 1, [100000, 2]), columns=['size_A', 'size_B']).cumsum(axis=0)
df.expanding(2).apply(lambda x: loc_fun(x.size_A.values, x.size_B.values))
应用于列中值的loc_fun
窗口。
答案 0 :(得分:1)
在lambda x中是一个numpy.ndarray所以你不能引用列'A-values'或'B_values'。
df.expanding(2).apply(lambda x: print(type(x)))
>><class 'numpy.ndarray'>