是否有一种直接的现有方法以固定间隔使用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中构建的固定间隔过滤器。
答案 0 :(得分:1)
各种可能性之一是在按照必要的窗口间隔对它们进行分组后使用groupby.transform
。
当您对Datagrid
min
方法执行transform
时,所有子组都会被其各自组中的最小值填充。
假设单个圆柱groupby
由DF
表示:
s
产生
s.groupby(np.arange(len(s.index)) // 5).transform('min')