Проблема с фреймом данных Pandas: `reset_index` не удаляет иерархический индекс - PullRequest
0 голосов
/ 12 октября 2018

Я пытаюсь сгладить мультипоказатель Pandas Dataframe так, чтобы существовал только одноуровневый индекс.Обычным решением, основанным на любом количестве сообщений SE, является использование команды df.reset_index, но это не решает проблему.

Я начал с Xarray DataArray и преобразовал его в кадр данных.Исходный фрейм данных выглядел следующим образом.

                results
      simdata   a_ss_yr attr    attr1   attr2 attr3
run    year                     
 0      0        0      0      0       0       0
        1         1      6     2       0       4
        2         2      4     2       2       0
        3         3      1     0       0       1
        4         4      2     0       2       0

Чтобы сгладить индекс, который я использовал

df.reset_index(drop=True)

Это только достигло этого:

         run    year  results
simdata               a_ss_yr attr  attr1   attr2
0         0     0      0         0    0    0
1         0     1      1         6    2    0
2         0     2      2         4    2    2
3         0     3      3         1    0    0
4         0     4      4         2    0    2

Я попытался сделать *Опция 1014 * более одного раза, но это все еще не выравнивает индекс, и я хочу получить это только для одноуровневого индекса.

Более конкретно, мне нужны переменные "run" и "year", чтобы перейти к набору имен столбцов уровня 0, и мне нужно полностью удалить заголовок "result".

Я читал документацию к Пандам, но похоже, что подобного рода операции с индексом на самом деле не описаны.У кого-нибудь есть чувство, как это сделать?

1 Ответ

0 голосов
/ 12 октября 2018

Сначала используйте droplevel для удаления первого уровня MultiIndex, а затем reset_index:

df.columns = df.columns.droplevel(0)
df = df.reset_index()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...