"Красивая печать всей Series / DataFrame в Pandas"
Я много работаю с Series и DataFrames в терминале. По умолчанию метод repr
для Series возвращает сокращенное представление, показывающее некоторые значения с начала и конца, в то время как остальная часть данных скрыта.
Существует ли встроенный способ красиво отобразить всю Series или DataFrame? В идеале, это должно поддерживать правильное выравнивание, возможно, границы между столбцами и, возможно, даже цветовую кодировку для разных столбцов.
5 ответ(ов)
Нет необходимости хакилить настройки. Есть простой способ:
print(df.to_string())
Для использования пакета 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
можно легко и быстро форматировать таблицы для вывода в консоль.
Если вы используете Jupyter Notebook (IPython), вы можете вывести DataFrame в формате HTML следующим образом:
from IPython.core.display import HTML
display(HTML(df.to_html()))
Этот код отобразит ваш DataFrame в более читабельном HTML-формате прямо в ячейке вашего ноутбука.
Просто выполните это:
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 будут отображаться без ограничения.
Попробуйте использовать следующий код для изменения настроек отображения в 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 и вы хотите видеть больше информации сразу.
Переименование названий столбцов в Pandas
Запись DataFrame pandas в CSV файл
Преобразование списка словарей в DataFrame pandas
Объединение двух столбцов текста в DataFrame pandas
Неоднозначное значение истинности Series. Используйте a.empty, a.bool(), a.item(), a.any() или a.all()