У меня есть этот фрейм данных pandas:
ts = pd.Series([2372, 4356, 3034, 1502, 676, 4187, 2634, 1002])
То, что я хотел бы получить, - это фрейм данных, который существует из максимального значения четырех последовательных строк столбца и сохраняет индекс строки 0, 4, 8 и т. д.
В данном случае это означает, что новый фрейм данных должен выглядеть так:
0 4356
4 4187
Как я мог это сделать?
Используйте numpy.arange с Groupby.agg:
In [899]: df = ts.groupby(np.arange(len(ts))//4).agg(['idxmax','max'])
In [900]: df
Out[900]:
idxmax max
0 1 4356
1 5 4187
@QuangHoang Спасибо за это. Отредактировал мой ответ.
Большое спасибо! @MayankPorwal и Куанг Хоанг
Пытаться:
ts.groupby((np.arange(len(ts))//4)*4).max()
Выход:
0 4356
4 4187
dtype: int64
ts.groupby(np.arange(len(ts))//4).agg(['idxmax','max'])
экономит вам одну группу :-).