Как сделать так, чтобы все субиндексы в мультииндексе имели одинаковые значения - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть Dataframe с мультииндексом, который выглядит следующим образом:

a 1
  2
  3
b 2
  3

Так что внешний уровень имеет значения a, b, а внутреннее значение равно 1, 2, 3 для a и 2, 3 для b

Я хочу убедиться, что индексы на внутреннем уровне одинаковы для всех индексов на внешнем уровне (в этом случае создайте новую строку для b с внутренним индексом 1).Значения в столбцах будут для всех новых строк пустыми значениями.

Есть ли простой способ сделать это?

1 Ответ

0 голосов
/ 26 сентября 2018

Вы можете переиндексировать MultiIndex из исходных индексов кадра данных:

df.reindex(pd.MultiIndex.from_product(df.index.levels))

Пример:

idx = pd.MultiIndex.from_arrays([['a','a','a','b','b'],[1,2,3,2,3]])

df = pd.DataFrame(np.random.random(5), index=idx)

>>> df
            0
a 1  0.354691
  2  0.322138
  3  0.195380
b 2  0.731177
  3  0.912628

>>> df.reindex(pd.MultiIndex.from_product(df.index.levels))
            0
a 1  0.354691
  2  0.322138
  3  0.195380
b 1       NaN
  2  0.731177
  3  0.912628
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...