Как печатать все строки фрейма pandas в консоли pycharm? [Дубликат]

Вы можете достичь этого несколькими способами.

let foo = {
    bar: 'Hello World'
};

foo.bar;
foo['bar'];

Обозначение скобок особенно мощно, так как оно позволяет вам получить доступ к свойству на основе переменной:

let foo = {
    bar: 'Hello World'
};

let prop = 'bar';

foo[prop];

Это может быть расширено до циклизации по каждому свойству объекта. Это может казаться излишним из-за новых конструкций JavaScript, таких как ... из ..., но помогает иллюстрировать прецедент:

let foo = {
    bar: 'Hello World',
    baz: 'How are you doing?',
    last: 'Quite alright'
};

for (let prop in foo.getOwnPropertyNames()) {
    console.log(foo[prop]);
}

Оба точечных и скобковых обозначения также работают как ожидалось для вложенных объектов :

let foo = {
    bar: {
        baz: 'Hello World'
    }
};

foo.bar.baz;
foo['bar']['baz'];
foo.bar['baz'];
foo['bar'].baz;

Деструктурирование объекта

Мы могли бы также рассмотреть разрушение объекта как средство доступа к свойству в объекте, но следующим образом:

let foo = {
    bar: 'Hello World',
    baz: 'How are you doing?',
    last: 'Quite alright'
};

let prop = 'last';
let { bar, baz, [prop]: customName } = foo;

// bar = 'Hello World'
// baz = 'How are you doing?'
// customName = 'Quite alright'
290
задан Domecraft 1 October 2013 в 20:53
поделиться

9 ответов

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

with pd.option_context('display.max_rows', None, 'display.max_columns', 3):
    print(df)

Это автоматически вернет параметры к их предыдущим значениям.

Дополнение: Если вы работаете над jupyter-notebook, использование display вместо print будет использовать богатую логику отображения jupyter.

386
ответ дан tsvikas 20 August 2018 в 17:09
поделиться
  • 1
    Это правильный ответ ... другой - обходной путь. – foobarbecue 29 August 2015 в 22:39
  • 2
    это может быть правильный ответ, но ничего не изменил для меня: \ – Amos Bordowitz 20 October 2015 в 11:39
  • 3
  • 4
    Спасибо! Обратите внимание, что установка максимальных значений на None отключает их. Используя опцию with pd.option_context(), что происходит очень четко и четко, и дает понять, как достичь других изменений в форматировании вывода, которые могут быть желательными, используя, например, precision, max_colwidth, expand_frame_repr, colheader_justify, date_yearfirst, encoding и многие другие: pandas.pydata.org/pandas-docs/stable/options.html – nealmcb 19 January 2017 в 15:15
  • 5
    Для тех, кто задается вопросом: при использовании jupyter используйте display(df) вместо print(df) – tsvikas 10 August 2017 в 18:53
  • 6
    что здесь 3? – Mona Jalal 25 September 2017 в 22:04

Вы можете достичь этого, используя метод ниже. просто пропустите общее число. столбцов, присутствующих в DataFrame, как arg to

'display.max_columns'

Например, например:

df= DataFrame(..)
with pd.option_context('display.max_rows', None, 'display.max_columns', df.shape[1]):
    print(df)
0
ответ дан Abhinav Ravi 20 August 2018 в 17:09
поделиться

Не нужно взламывать настройки. Существует простой способ:

print(df.to_string())
211
ответ дан Andrey Shokhin 20 August 2018 в 17:09
поделиться
  • 1
    Непонятно мне, почему другие больше проголосовали, чем это, - мне кажется, что это самый простой способ для меня. – themaestro 29 October 2016 в 00:27
  • 2
    Сколько у вас колонок? Я проверил с 1300 столбцами, и он отлично работает: из импортных комбинаций itertools из строки import ascii_letters df = pd.DataFrame (data = [[0] * 1326], index = [0], columns = [(a + b) для a, b в комбинациях (ascii_letters, 2)]) – Andrey Shokhin 2 November 2016 в 12:04
  • 3
  • 4
    Используя опцию with pd.option_context(), что происходит гораздо более четко и явно, и дает понять, как достичь других изменений в форматировании вывода, которые могут быть желательными, используя, например, precision, max_colwidth, expand_frame_repr, colheader_justify, date_yearfirst, encoding и многие другие: pandas.pydata.org/pandas-docs/stable/options.html – nealmcb 19 January 2017 в 15:12
  • 5
    Я предпочитаю другие ответы, потому что это выглядит странно в моем примере, если у меня много столбцов, и мой экран недостаточно широк, чтобы отображать их. Имена столбцов и данные будут выполнять отдельные разрывы строк, поэтому не легко увидеть, какие данные принадлежат к имени столбца. – Dremet 14 February 2017 в 13:25
  • 6
    Заявитель запросил «красивую печать», решение. Это не . Если бы это было использовано в Jupyter Notebook, встроенный симпатичный дисплей вообще не использовался. Лучше использовать pd.set_option('display.max_rows', None) перед печатью df. – L S 2 July 2018 в 16:30

Конечно, если это много, сделайте такую ​​функцию. Вы даже можете настроить его для загрузки при каждом запуске IPython: https://ipython.org/ipython-doc/1/config/overview.html

def print_full(x):
    pd.set_option('display.max_rows', len(x))
    print(x)
    pd.reset_option('display.max_rows')

As для окраски, слишком сложный, с цветами кажется мне контрпродуктивным, но я согласен с тем, что bootstrap's .table-striped будет приятным. Вы всегда можете создать проблему , чтобы предложить эту функцию.

148
ответ дан Donald Duck 20 August 2018 в 17:09
поделиться

Попробуйте

pd.set_option('display.height',1000)
pd.set_option('display.max_rows',500)
pd.set_option('display.max_columns',500)
pd.set_option('display.width',1000)
4
ответ дан Liang Zulin 20 August 2018 в 17:09
поделиться

Просто используйте это для печати целых кадров:

pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)
pd.set_option('display.max_colwidth', -1)

Также вы можете создать функцию довольно печати с помощью диспетчера контекстов, как в приведенных выше примерах.

Полный список полезные опции:

pd.describe_option('display')

Несколько примеров использования: http://pandas.pydata.org/pandas-docs/stable/options.html

35
ответ дан lucidyan 20 August 2018 в 17:09
поделиться
  • 1
    Спасибо, что добавил. & Quot; Отсутствует & Quot; лучше, чем фактическая длина каждого отдельного кадра данных, если вы хотите отображать более одного кадра данных. – Dremet 14 February 2017 в 13:26
  • 2
    @Corrumpo Для некоторых параметров вы должны использовать значение -1 int вместо None, если вы хотите, чтобы полное представление – lucidyan 24 March 2017 в 16:53
  • 3

Если вы используете Ipython Notebook (Jupyter). Вы можете использовать HTML

from IPython.core.display import HTML
display(HTML(df.to_html()))
5
ответ дан R Kisyula 20 August 2018 в 17:09
поделиться

Используйте пакет tabulate:

pip install tabulate

И рассмотрим следующий пример использования:

import pandas as pd
from io import StringIO
from tabulate import tabulate

c = """Chromosome Start End
chr1 3 6
chr1 5 7
chr1 8 9"""

df = pd.read_table(StringIO(c), sep="\s+", header=0)

print(tabulate(df, headers='keys', tablefmt='psql'))

+----+--------------+---------+-------+
|    | Chromosome   |   Start |   End |
|----+--------------+---------+-------|
|  0 | chr1         |       3 |     6 |
|  1 | chr1         |       5 |     7 |
|  2 | chr1         |       8 |     9 |
+----+--------------+---------+-------+
15
ответ дан Urda 20 August 2018 в 17:09
поделиться
0
ответ дан A-B-B 31 October 2018 в 12:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: