Панды отображают все индексные метки в блокноте Jupyter, несмотря на повторение

1

При отображении DataFrame в ноутбуке jupyter. Индекс отображается иерархически. Чтобы повторные метки не отображались в следующей строке. Например, кадр данных с Multiindex со следующими метками

[1, 1, 1, 1]
[1, 1, 0, 1]

будет отображаться как

1 1 1 1 ...
    0 1 ...

Могу ли я изменить это поведение, чтобы все индексы были показаны, несмотря на повторение? Как это:

1 1 1 1 ...
1 1 0 1 ...

?

import pandas as pd
import numpy as np
import itertools
N_t = 5
N_e = 2
classes = tuple(list(itertools.product([0, 1], repeat=N_e)))
N_c = len(classes)
noise = np.random.randint(0, 10, size=(N_c, N_t))
df = pd.DataFrame(noise, index=classes)
df

        0   1   2   3   4
0   0   5   9   4   1   2
    1   2   2   7   9   9
1   0   1   7   3   6   9
    1   4   9   8   2   9

# should be shown as
        0   1   2   3   4
0   0   5   9   4   1   2
0   1   2   2   7   9   9
1   0   1   7   3   6   9
1   1   4   9   8   2   9
Теги:
pandas
jupyter

1 ответ

3
Лучший ответ

Использование -

with pd.option_context('display.multi_sparse', False):
    print (df)

Выход

     0  1  2  3  4
0 0  8  1  4  0  2
0 1  0  1  7  4  7
1 0  9  6  5  2  0
1 1  2  2  7  2  7

И глобально:

pd.options.display.multi_sparse = False

или же

спасибо @Kyle -

print(df.to_string(sparsify=False))
  • 0
    Вы можете сделать это только для одной печати через print(df.to_string(sparsify=false)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню