我经常在终端上使用Series和DataFrames。Series的默认__repr__返回一个减少的样本,其中有一些头部和尾部值,但其余的都没有。
是否有一种内置的方式来漂亮地打印整个系列/数据帧?理想情况下,它应该支持适当的对齐,可能是列之间的边界,甚至可能是不同列的颜色编码。
我经常在终端上使用Series和DataFrames。Series的默认__repr__返回一个减少的样本,其中有一些头部和尾部值,但其余的都没有。
是否有一种内置的方式来漂亮地打印整个系列/数据帧?理想情况下,它应该支持适当的对齐,可能是列之间的边界,甚至可能是不同列的颜色编码。
当前回答
使用pd.options.display
这个答案是lucidyan先前答案的一个变体。它通过避免使用set_option使代码更具可读性。
导入pandas后,作为使用上下文管理器的另一种选择,设置以下选项来显示大数据框架:
def set_pandas_display_options() -> None:
"""Set pandas display options."""
# Ref: https://stackoverflow.com/a/52432757/
display = pd.options.display
display.max_columns = 1000
display.max_rows = 1000
display.max_colwidth = 199
display.width = 1000
# display.precision = 2 # set as needed
set_pandas_display_options()
在此之后,如果使用笔记本电脑,您可以使用display(df)或仅使用df,否则使用print(df)。
使用to_string
Pandas 0.25.3有DataFrame。to_string和Series。接受格式化选项的To_string方法。
使用to_markdown
如果你需要的是降价输出,Pandas 1.0.0有DataFrame。to_markdown和Series。to_markdown方法。
使用to_html
如果你需要的是HTML输出,Pandas 0.25.3确实有一个DataFrame。to_html方法,而不是Series.to_html方法。注意Series可以转换为DataFrame。
其他回答
不需要侵入设置。有一个简单的方法:
print(df.to_string())
这个链接可以帮助你
嗨,我的朋友,播放这个
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
您可以使用下面的方法来实现这一点。只需要传递总no。在DataFrame中显示为arg to的列
“display.max_columns”
例如:
df= DataFrame(..)
with pd.option_context('display.max_rows', None, 'display.max_columns', df.shape[1]):
print(df)
datasroller的创建部分是为了解决这个问题。
pip install datascroller
它将数据帧加载到终端视图中,你可以用鼠标或方向键“滚动”,有点像终端上的Excel工作簿,支持查询、高亮显示等。
import pandas as pd
from datascroller import scroll
# Call `scroll` with a Pandas DataFrame as the sole argument:
my_df = pd.read_csv('<path to your csv>')
scroll(my_df)
披露:我是datascroller的作者之一
尝试使用display()函数。这将自动使用水平和垂直滚动条,这样你就可以轻松地显示不同的数据集,而不是使用print()。
display(dataframe)
Display()也支持正确的对齐。
然而,如果你想让数据集更漂亮,你可以检查pd.option_context()。它有很多选项来清楚地显示数据框架。
注:我正在使用Jupyter笔记本电脑。