【发布时间】:2016-06-19 14:07:20
【问题描述】:
我想要实现的是: 我有几个时间序列,我需要按点组合它们并将结果作为一个新的时间序列返回。
我知道您可以在pandas 的系列上使用各种numpy 函数,但我不清楚如何将复杂函数应用于多个时间序列。
我要应用的功能:
def direction_day(y_values):
# taking a numpy array of floats
sig_sum = np.sum(np.sign(y_values))
abs_sum = np.sum(np.abs(np.sign(y_values)))
return (sig_sum / abs_sum)
我当前的TimeSeries 对象示例:
def ret_random_ts():
dates = ['2016-1-{}'.format(i)for i in range(1,21)]
values = [np.random.randn(4,3) for i in range(20)]
return pd.Series(values, index=dates)
当然,我总是可以用for 循环遍历TimeSeries 并将它们粘合在一起。
但是,我想知道是否可以选择将函数传递给每个日期包含多个值的 TimeSeries 对象,并将该函数应用于每个日期?
即:
ts = ret_random_ts()
ts.apply_func(direction_day,Series['Dates'])
【问题讨论】:
标签: python-3.x pandas dataframe