Отображение фрейма данных 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()