12

"Красивая печать всей Series / DataFrame в Pandas"

16

Я много работаю с Series и DataFrames в терминале. По умолчанию метод repr для Series возвращает сокращенное представление, показывающее некоторые значения с начала и конца, в то время как остальная часть данных скрыта.

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

5 ответ(ов)

11

Нет необходимости хакилить настройки. Есть простой способ:

print(df.to_string())
0

Для использования пакета 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 |
+----+--------------+---------+-------+

Таким образом, с помощью пакета tabulate можно легко и быстро форматировать таблицы для вывода в консоль.

0

Если вы используете Jupyter Notebook (IPython), вы можете вывести DataFrame в формате HTML следующим образом:

from IPython.core.display import HTML
display(HTML(df.to_html()))

Этот код отобразит ваш DataFrame в более читабельном HTML-формате прямо в ячейке вашего ноутбука.

0

Просто выполните это:

pd.set_option("display.max_rows", None, "display.max_columns", None)
print(df)

После выполнения вы получите следующий вывод:

Column
0    row 0
1    row 1
2    row 2
3    row 3
4    row 4
5    row 5
6    row 6
7    row 7
8    row 8
9    row 9
10  row 10
11  row 11
12  row 12
13  row 13
14  row 14
15  row 15
16  row 16
17  row 17
18  row 18
19  row 19
20  row 20
21  row 21
22  row 22
23  row 23
24  row 24
25  row 25
26  row 26
27  row 27
28  row 28
29  row 29
30  row 30
31  row 31
32  row 32
33  row 33
34  row 34
35  row 35
36  row 36
37  row 37
38  row 38
39  row 39
40  row 40
41  row 41
42  row 42
43  row 43
44  row 44
45  row 45
46  row 46
47  row 47
48  row 48
49  row 49
50  row 50
51  row 51
52  row 52
53  row 53
54  row 54
55  row 55
56  row 56
57  row 57
58  row 58
59  row 59
60  row 60
61  row 61
62  row 62
63  row 63
64  row 64
65  row 65
66  row 66
67  row 67
68  row 68
69  row 69

Таким образом, все строки и столбцы вашего DataFrame будут отображаться без ограничения.

0

Попробуйте использовать следующий код для изменения настроек отображения в pandas:

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)

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

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь