извлечение данных из мультииндексного фрейма данных

#python #python-3.x #pandas

#python #python-3.x #pandas

Вопрос:

У меня есть фрейм данных pandas, где в первой строке у меня есть несколько записей, но во 2-й строке есть повторяющиеся столбцы.

                    A                           B.                     C
Date           High         Low            High       Low.        High        Low       
2000-07-03     19.796038    19.202157      9.261945   9.011265    19.261945   9.011265

2000-07-05     19.845534    18.845534      9.81945    8.011       29.81945    8.011
  

Я хочу выяснить, какие A, B или C имеют наибольшую разницу в высоком и низком значениях вместе с датой.

 Desired output:
                     C
         Date        High          Low      Difference 
         2000-07-05  29.81945      8.011.   21.808
  

что лучше pivot_table, group_by, melt?

Ответ №1:

Мы можем сделать stack , тогда idxmax

 s=df.stack(level=0)
idx=(s['High']-s['Low']).idxmax()

df.loc[[idx[0]],[idx[1]]]
Out[268]: 
                   C       
                High    Low
Date                       
2000-07-05  29.81945  8.011