пользовательские функции не создают столбцы с несколькими индексами в pivot_table (pandas) - PullRequest
0 голосов
/ 28 мая 2020

Я хочу использовать pandas функцию «pivot_table» для создания двух новых столбцов из исходного значения столбца на основе уровней (obs и mod) в столбце «obsmod». Вы можете найти образцы данных здесь . Я хочу иметь процентили вместе со средним, медианным и стандартным значением. Итак, я сделал следующий сценарий.

def my5(g):
    return np.percentile(g, 5)

def my95(g):
    return np.percentile(g, 95)

out==test.pivot_table(index=['date','rcp','vars',
                                      'station_type_of_area'], 
                             columns='obsmod',
                             values='value',
                             aggfunc=[np.mean, np.median, np.std,my5,my95]).reset_index()

Результат должен быть мультииндексным фреймом данных, подобным этому

date vars   mean        median     my5         my95
          mod obs       mod obs  mod obs    mod obs

Но я получаю это

date vars   mean        median      my5         my95
          mod obs       mod obs     mod         mod 

Проблема в том, что вложенный уровень " obs »удаляется при использовании пользовательских функций my5 и my95.

Любая помощь будет принята с благодарностью.

С уважением, Омид.

...