我发现自己将函数应用于 TimeSeries 的值和索引。我这样做的方法是构建一个包含 TimeSeries 的值和索引的 DataFrame,然后将一个函数应用于 DataFrame。
# imports
import pandas as pd
import numpy as np
# Set up some input time series
dates = pd.date_range('2012-04-01', periods=500,freq='MS')
ts = pd.Series(np.arange(500), index=dates)
# Build data frame of values and index
tmp = pd.concat([ts, ts.index.to_series()], join='outer', axis=1)
# Example function to apply
f = lambda x: x[0] / 4 if x[1].month % 3 == 1 else 0
# Apply function
out = tmp.apply(f, axis=1)
我有一个偷偷摸摸的怀疑,这不是解决这个问题的最优雅/最有效的方法,但在文档中找不到任何建议更好的路线。有任何想法吗?