【发布时间】:2018-07-26 20:02:11
【问题描述】:
考虑这个简单的代码(loc_fun 中的numpy.sum 是使用 numpy 的更复杂的二元函数的替代):
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 应用于列中值的expanding() 窗口。
【问题讨论】:
-
我认为这是个问题,因为还没有实现。
expanding就像rolling分别处理每一列 - 检查print+ (def f(x): print (x) return x.sum() df = df.expanding(2).apply(f))。所以不幸的是需要没有expanding的自定义函数。还要检查this,也许会有所帮助。 -
不确定,尝试联系作者 -
pir是数学非常聪明的人,希望对您有所帮助;)