Pandas以固定间隔应用函数

时间:2017-02-28 11:50:44

标签: pandas numpy scipy

是否有一种直接的现有方法以固定间隔使用pandas(或numpy,scipy)应用函数?

示例

长度为11的pd.DataFrame

0   0.2
1   0.3
2   0.4
3   0.4
4   0.4
5   0.4
6   0.4
7   0.4
8   0.4
9   0.4
10  0.6

例如,应用具有interval = 5的min函数将导致

0   0.2 # Beginning of interval
1   0.2
2   0.2
3   0.2
4   0.2 # End of interval
5   0.4 # Beginning of interval
6   0.4
7   0.4
8   0.4
9   0.4 # End of interval
10  0.6 # Beginning of interval (takes the min function of the remaining values)

到目前为止,我可以用

完成
df = pd.read_clipboard(index_col = 0, header = None) # Copying the above data
df['intervals'] = (np.arange(len(df)) / 5).astype(int)
mapper = df.groupby('intervals').min()
result = df['intervals'].apply(lambda x: mapper.loc[x])
print result

但是我想知道是否存在已经在pandas / numpy / scipy中构建的固定间隔过滤器。

1 个答案:

答案 0 :(得分:1)

各种可能性之一是在按照必要的窗口间隔对它们进行分组后使用groupby.transform

当您对Datagrid min方法执行transform时,所有子组都会被其各自组中的最小值填充。

假设单个圆柱groupbyDF表示:

s

产生

s.groupby(np.arange(len(s.index)) // 5).transform('min')