2025, Oct 30 18:46
Показ индекса DataFrame pandas в marimo как в Jupyter
Разберем, как отобразить индекс DataFrame pandas в marimo так же, как в Jupyter: почему он скрывается по умолчанию и как включить его через HTML-рендеринг.
Как сделать так, чтобы pandas показывал индекс в marimo так же, как в Jupyter
Контекст
Когда вы создаёте DataFrame pandas в ноутбуке Jupyter и позволяете ячейке отрисоваться, вы видите индекс рядом со столбцами. Запуск того же кода в marimo может скрывать индекс при отображении. Если вы полагаетесь на индекс для просмотра или быстрой проверки, такое расхождение раздражает и его легко пропустить.
Минимальный пример, который показывает различие
import pandas as p
p.DataFrame({"col1": ["a", "b", "c", "d"], "col2": ["e", "f", "g", "h"]})
В Jupyter это отображается с видимым индексом (0, 1, 2, 3). В marimo запуск той же ячейки может скрыть индекс в выводе.
Что происходит
Один и тот же объект pandas показывается в двух средах с разными фронтендами. В Jupyter по умолчанию отображение DataFrame включает индекс. В marimo индекс скрывается, когда вы напрямую вычисляете ту же ячейку с DataFrame. Если хотите, чтобы индекс был виден в marimo, возьмите управление рендерингом на себя.
Решение
Отрендерьте DataFrame в HTML самостоятельно и позвольте marimo показать этот HTML. Тогда индекс появится в выводе.
import pandas as p
import marimo as m
grid = p.DataFrame({"col1": ["a", "b", "c", "d"], "col2": ["e", "f", "g", "h"]})
m.Html(grid.to_html())
Такой подход сохраняет содержимое DataFrame и показывает индекс при просмотре в marimo.
Почему это важно
Видимость индекса влияет на то, как вы на лету проверяете объединения, порядок, срезы и выравнивание. Если вы переключаетесь между Jupyter и marimo, единообразное отображение помогает избежать ложных предположений во время разведочного анализа и ревью кода.
Выводы
Если вам нужен видимый индекс в marimo, рендерьте DataFrame явно и показывайте его через HTML. Пользуйтесь этим приёмом всякий раз, когда важны детали представления и вы хотите получить результат, совпадающий с тем, что видите в Jupyter.