У меня есть серия панд, которую я хотел бы объединить тремя разными способами.Серия выглядит следующим образом:
import pandas as pd
timestamps = [1,1,1,2,3,3,3,4]
quantities = [10,0,2,6,7,2,8,0]
series = pd.Series(quantities, index=timestamps)
Очевидно, что временные метки имеют значения 3 values of 1
, 1 value of 2
, 3 values of 3
и 1 value of 1
.Я хотел бы создать следующие серии:
1.Сумма повторяющихся значений индекса:
pd.Series([12,6,17,0], index=[1,2,3,4])
2.Медиана повторяющихся значений индекса:
pd.Series([2,6,7,0], index=[1,2,3,4])
2.Число повторяющихся значений индекса:
pd.Series([3,1,3,1], index=[1,2,3,4])
В numpy
Я бы достиг этого, используя метод unique_elements_to_indices
:
from typing import Dict
import numpy as np
def unique_elements_to_indices(array: np.array) -> Dict:
mapping = {}
for unique_element in np.unique(array):
mapping[unique_element] = np.where(array == unique_element)[0]
return mapping
... и затем я быпереберите unique_elements
и используйте np.where
, чтобы найти quantities
для данного unique_element
.
Есть ли что-нибудь для быстрого достижения этого в пандах, пожалуйста?
Спасибо.