фрейм данных pandas, максимальное количество столбцов при сохранении индекса

#python #pandas #time-series

#python #pandas #временные ряды

Вопрос:

В качестве вывода мне нужен фрейм данных только с 1 строкой (индекс должен быть последней датой) и максимальным значением по столбцу.

                 A        B         C
2000-06-13 35.44110000 34.17990000 34.02230000
2000-06-14 92.11310000 91.05430000 90.95720000
2000-06-15 57.97080000 57.78140000 58.19820000
2000-06-16 34.17050000 92.45300000 58.51070000
 

Я знаю, что могу использовать df.tails(n).max() , но это превращает все это в серию, которая кажется довольно сложной для возврата в фрейм данных.

Кто-нибудь знает что-нибудь элегантное или функциональное для его достижения?

Комментарии:

1. pd.DataFrame(df.tails(n).max()) ? (Я не уверен, зачем вам нужен tails(n) here, поскольку он выбирает последние n строк в dataframe , но вы предложили это)

Ответ №1:

Вы хотите idxmax ?

 df.idxmax().to_frame().T
 

Вывод

             A           B           C
0  2000-06-14  2000-06-16  2000-06-14
 

Или, согласно комментариям ниже.

 df.max().to_frame().T
 

Вывод:

          A       B        C
0  92.1131  92.453  90.9572
 

И,

 df.max().to_frame().T.rename(index={0:df.idxmax().max()})
 

Вывод:

                   A       B        C
2000-06-16  92.1131  92.453  90.9572
 

Комментарии:

1. Нет, я хочу, чтобы максимальные значения столбцов были в одной строке со значением индекса последней даты

Ответ №2:

Ты можешь это сделать:

 df = df[df['column'] == df['column'].max()] 
 

В результирующем фрейме данных будет сохранен индекс, а также все значения столбцов…