Отображение фрейма данных Pandas в виде таблицы

так как я установил обновленную версию pandas каждый раз, когда я ввожу имя фрейма данных, например

df[0:5]

Чтобы увидеть первые несколько строк, он дает мне сводку столбцов, количество значений в них и типы данных.

Как мне увидеть табличное представление? (Я использую iPython btw).

Спасибо заранее!

Ответ 1

Примечание. Чтобы показать верхние несколько строк, вы также можете использовать head.

Тем не менее, pandas покажет суммарное представление, если больше столбцов, чем display.max_columns, или они длиннее display.width (аналогично для строк), поэтому вам нужно увеличить их, чтобы отобразить табличное представление. Вы можете изменить их, используя опцию set, например:

pd.options.display.max_columns = 50

См. эту проблему pandas: "Неинтуитивное поведение по умолчанию с широкими DataFrames в ноутбуке IPython" .

В качестве альтернативы, покажите первые несколько строк для первых нескольких столбцов, которые вы можете использовать:

df.head(5)[df.columns[0:4]]
# alternatively
df.iloc[:5, :4]

Ответ 2

Короткий ответ: Если позднее ваша версия 0.11.0, попробуйте установить ширину экрана с помощью:

pd.set_option('display.width', 200)

Длинный ответ:  Конечно, нить составляет 4 месяца, но у меня была такая же проблема вчера вечером. Ноутбук ipython, который отлично работал на моей работе, не будет представлять html-таблицы дома.

Сначала проверьте версию:

import pandas as pd
pd.__version__ 

Моя возвращается с: '0.11.0'

Затем проверьте свои настройки с помощью:

pd.describe_option('display')

Это даст вам длинный список всех возможных параметров отображения и текущих значений по умолчанию. Возможно, вам придется играть с изменением значений по умолчанию. Пойдите с большими значениями, чтобы заставить его работать, а затем масштабируйте по мере необходимости.

Display.width является важным. Я поставил их наверху с импортом.

pd.set_option('display.height', 500)
pd.set_option('display.max_rows', 500)
pd.set_option('display.max_columns', 500)
pd.set_option('display.width', 200)

Ответ 3

Очень полезно, спасибо. Я просмотрел этот ulmo + pandas пример в ноутбуке, размещенном на Wakari и был озадачен тем, почему в некоторых таблицах просто дается сводка, а не как HTML. Похоже, что опция display.width в Wakari по умолчанию составляет всего 80, поэтому таблица не должна быть очень широкой, прежде чем она решит распечатать резюме. Это запутанный скрытый режим. Следующее исправлено:

pandas.set_option('display.width',500)

display.max_rows и display.max_columns по умолчанию - 60 и 20, поэтому я оставил их как есть. Это было с pandas 0.11.0.

Ответ 4

Первый шаг: Я использую это, чтобы получить графический интерфейс в pydev eclipse. Убедитесь, что у вашего pydev установлен графический интерфейс. Используйте этот учебник: http://popdevelop.com/2010/04/setting-up-ide-and-creating-a-cross-platform-qt-python-gui-application/ для этого.

Второй шаг: взяв примеры отсюда Самый быстрый способ заполнения QTableView из Pandas кадра данных и делая некоторые изменения, запустите код ниже:

import pandas as pd
from PyQt5 import QtCore, QtGui ,QtWidgets
class PandasModel2(QtCore.QAbstractTableModel):
    """
    Class to populate a table view with a pandas dataframe
    """
    def __init__(self, data, parent=None):
        QtCore.QAbstractTableModel.__init__(self, parent)
        self._data = data

    def rowCount(self, parent=None):
        return self._data.shape[0]

    def columnCount(self, parent=None):
        return self._data.shape[1]

    def data(self, index, role=QtCore.Qt.DisplayRole):
        if index.isValid():
            if role == QtCore.Qt.DisplayRole:
                return str(self._data.iloc[index.row(), index.column()])
        return None

    def headerData(self, col, orientation, role):
        if orientation == QtCore.Qt.Horizontal and role == QtCore.Qt.DisplayRole:
            return self._data.columns[col]
        return None

view = QtWidgets.QTableView()

Как только это будет сделано. Все, что вам нужно, это просто ввести команды ниже, и вы можете иметь графический интерфейс

view.setModel(PandasModel2("your dataframe name"))
view.show()