Как получить всю информацию о строках, связанных с минимальными и максимальными значениями после функции groupby - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть следующий набор данных.

df=pd.DataFrame({'listing_id':['12345','12349','12345','12349','12345'], 'price':[3,5,67,7,12]})
df['date'] = pd.date_range(start='1/2/2020', periods=len(df), freq='D')
df

И я хотел бы применить функции агрегации.

df.groupby('listing_id').agg({'price':['count','mean', 'std','min','max']})

Каков наилучший способ получить дату связано с min AND max цена e поместите эту информацию в один ряд.

1 Ответ

0 голосов
/ 15 апреля 2020

Мы можем добавить idxmim и idxmax, а затем присвоить значение на его основе

s=df.groupby('listing_id')['price'].agg(['count','mean', 'std','min','max','idxmax','idxmin'])
... 
s['Date_max']=df.reindex(s['idxmax'])['date'].values
s['Date_min']=df.reindex(s['idxmin'])['date'].values
s
            count       mean        std  ...  idxmin   Date_max   Date_min
listing_id                               ...                              
12345           3  27.333333  34.645827  ...       0 2020-01-04 2020-01-02
12349           2   6.000000   1.414214  ...       1 2020-01-05 2020-01-03
[2 rows x 9 columns]
...