# import packages we need, seed random number generator
import pandas as pd
import datetime
import random
random.seed(1)
Создать пример кадра данных
dates = [single_date for single_date in (start_date + datetime.timedelta(n) for n in range(day_count))]
values = [random.randint(1,1000) for _ in dates]
df = pd.DataFrame(zip(dates,values),columns=['dates','values'])
ie df
будет:
dates values
0 2020-01-01 389
1 2020-01-02 808
2 2020-01-03 215
3 2020-01-04 97
4 2020-01-05 500
5 2020-01-06 30
6 2020-01-07 915
7 2020-01-08 856
8 2020-01-09 400
9 2020-01-10 444
Выбрать строки с наибольшим значением в каждом столбце
Вы можете сделать:
df[df['dates'] == df['dates'].max()]
(Или, если хотите использовать idxmax
, можете сделать: df.loc[[df['dates'].idxmax()]]
)
Возврат:
dates values
9 2020-01-10 444
ie это строка с последней датой
&
df[df['values'] == df['values'].max()]
(Или, если хотите снова использовать idxmax
, можно сделать: df.loc[[df['values'].idxmax()]]
- как в Scott Boston s answer .)
и
dates values
6 2020-01-07 915
ie это строка с наибольшим значением в столбце values
.
Ссылка .