.apply()一个双变量numpy()lambda函数到pandas DataFrame的.expanding()窗口

时间:2018-02-15 23:17:51

标签: python pandas numpy

考虑这个简单的代码(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窗口。

1 个答案:

答案 0 :(得分:1)

在lambda x中是一个numpy.ndarray所以你不能引用列'A-values'或'B_values'。

df.expanding(2).apply(lambda x: print(type(x)))

>><class 'numpy.ndarray'>