【发布时间】:2015-01-16 18:31:55
【问题描述】:
我有一个数据框,可以计算滚动 10 周期均值的新列
使用pandas.stats.moments.rolling_mean(ExistingColumn, 10,
min_periods=10)。如果可用的句点少于 10 个,我会得到一个 NaN。一世
可以对滚动中位数做同样的事情。完美。
我现在想计算 N 个周期的其他滚动函数,但不能 我的生活弄清楚如何在 Pandas 中使用用户定义的函数。在 特别是,我想计算一个滚动的 10 点霍奇斯雷曼平均值,即 定义如下:
def hodgesLehmanMean(x):
return 0.5 * statistics.median(x[i] + x[j] for i in range(len(x)) for j in range(i+1,len(x)))
我怎样才能把它变成一个可以应用于熊猫的滚动函数 如果传递给它的句点少于 10 个,则返回一个 NaN?我是一个 熊猫新手,所以我特别感谢一个简单的解释 一个例子。
【问题讨论】:
-
如果你查看documentation,你可以看到
rolling_apply函数,它允许你以滚动方式应用任何函数。您的函数必须将“滚动窗口”内的数据作为参数。目前尚不清楚您的 hodgesLehmannMean 如何涉及窗口。x是什么?是窗口还是整个数据集?
标签: python pandas dataframe user-defined-functions