cutoff = 10
def decompose(time):
components = [cutoff for _ in range(int(time / cutoff))] + [time.iloc[0] % cutoff]
return pd.Series([c for c in components if c > 0])
df.groupby('mat').time.apply(decompose).reset_index(-1, drop=True)
获得:
^{pr2}$
如果您关心性能:
%timeit df.groupby('mat', group_keys=False).apply(split_max_time)
100 loops, best of 3: 4.21 ms per loop
%timeit df.groupby('mat').time.apply(decompose).reset_index(-1, drop=True)
1000 loops, best of 3: 1.83 ms per loop
您可以
.groupby('mat')
和.apply()
组合使用cutoff
(10
)将time
值分解为所需的组件:获得:
^{pr2}$如果您关心性能:
使用一个
apply
函数,该函数循环直到所有值小于10。在相关问题 更多 >
编程相关推荐