如何在不丢失格式的情况下在终端中打印df?
可以说我有一个像这样的df:
In: df
Out:
TFs No Esenciales Genes regulados Genes Regulados Positivamente Genes Regulados Negativamente No Tentativo de genes a silenciar No Real de genes a silenciar No Tentativo de genes a inducir
146 YdeO 20 18 2 2 2 0
但是当我使用print将其显示在 shell 中时,它失去了格式
In: print (df)
Out:
TFs No Esenciales Genes regulados Genes Regulados Positivamente \
146 YdeO 20 18
Genes Regulados Negativamente No Tentativo de genes a silenciar \
146 2 2
No Real de genes a silenciar No Tentativo de genes a inducir \
146 2 0
No Real de genes a inducir Balance de genes Balance real de genes
146 0 2 2
如何使用打印,但保持格式?
我想要的输出是:
In: print (df)
Out:
TFs No Esenciales Genes regulados Genes Regulados Positivamente Genes Regulados Negativamente No Tentativo de genes a silenciar No Real de genes a silenciar No Tentativo de genes a inducir
146 YdeO 20 18 2 2 2 0
最佳答案
DOCUMENTATION
该控件上有两件事情,您可能会看到格式设置。
display.width
处理的,可以通过print pd.get_option('display.width')
查看。默认值为80
。 display.max_columns
处理的,可以通过print pd.get_option('display.max_columns')
查看。默认值为20
。 display.width
让我们探索一下如何处理示例数据框
import pandas as pd
df = pd.DataFrame([range(40)], columns=['ABCDE%d' % i for i in range(40)])
print df # this is with default 'display.width' of 80
ABCDE0 ABCDE1 ABCDE2 ABCDE3 ABCDE4 ABCDE5 ABCDE6 ABCDE7 ABCDE8 \
0 0 1 2 3 4 5 6 7 8
ABCDE9 ... ABCDE30 ABCDE31 ABCDE32 ABCDE33 ABCDE34 ABCDE35 \
0 9 ... 30 31 32 33 34 35
ABCDE36 ABCDE37 ABCDE38 ABCDE39
0 36 37 38 39
[1 rows x 40 columns]
pd.set_option('display.width', 40)
print df
ABCDE0 ABCDE1 ABCDE2 ABCDE3 \
0 0 1 2 3
ABCDE4 ABCDE5 ABCDE6 ABCDE7 \
0 4 5 6 7
ABCDE8 ABCDE9 ... ABCDE30 \
0 8 9 ... 30
ABCDE31 ABCDE32 ABCDE33 ABCDE34 \
0 31 32 33 34
ABCDE35 ABCDE36 ABCDE37 ABCDE38 \
0 35 36 37 38
ABCDE39
0 39
[1 rows x 40 columns]
pd.set_option('display.width', 120)
这应该滚动到右边。
print df
ABCDE0 ABCDE1 ABCDE2 ABCDE3 ABCDE4 ABCDE5 ABCDE6 ABCDE7 ABCDE8 ABCDE9 ... ABCDE30 ABCDE31 ABCDE32 \
0 0 1 2 3 4 5 6 7 8 9 ... 30 31 32
ABCDE33 ABCDE34 ABCDE35 ABCDE36 ABCDE37 ABCDE38 ABCDE39
0 33 34 35 36 37 38 39
[1 rows x 40 columns]
display.max_columns
让我们用
'display.width'
将pd.set_option('display.width,80)
回到80现在让我们探索
'display.max_columns'
的不同值print df # default 20
ABCDE0 ABCDE1 ABCDE2 ABCDE3 ABCDE4 ABCDE5 ABCDE6 ABCDE7 ABCDE8 \
0 0 1 2 3 4 5 6 7 8
ABCDE9 ... ABCDE30 ABCDE31 ABCDE32 ABCDE33 ABCDE34 ABCDE35 \
0 9 ... 30 31 32 33 34 35
ABCDE36 ABCDE37 ABCDE38 ABCDE39
0 36 37 38 39
[1 rows x 40 columns]
注意中间的椭圆。在此数据框中有40列,要达到20个最大列的显示计数, Pandas 将前10列
0:9
和后10列30:39
放在中间。pd.set_option('display.max_columns', 30)
print df
ABCDE0 ABCDE1 ABCDE2 ABCDE3 ABCDE4 ABCDE5 ABCDE6 ABCDE7 ABCDE8 \
0 0 1 2 3 4 5 6 7 8
ABCDE9 ABCDE10 ABCDE11 ABCDE12 ABCDE13 ABCDE14 ... ABCDE25 \
0 9 10 11 12 13 14 ... 25
ABCDE26 ABCDE27 ABCDE28 ABCDE29 ABCDE30 ABCDE31 ABCDE32 ABCDE33 \
0 26 27 28 29 30 31 32 33
ABCDE34 ABCDE35 ABCDE36 ABCDE37 ABCDE38 ABCDE39
0 34 35 36 37 38 39
[1 rows x 40 columns]
注意字符的宽度保持不变,但是我有更多的列。 Pandas 采用了前15列
0:14
和后15列26:39
。要显示所有列,您需要将此选项设置为至少与要显示的列数一样大。
pd.set_option('display.max_columns', 40)
print df
ABCDE0 ABCDE1 ABCDE2 ABCDE3 ABCDE4 ABCDE5 ABCDE6 ABCDE7 ABCDE8 \
0 0 1 2 3 4 5 6 7 8
ABCDE9 ABCDE10 ABCDE11 ABCDE12 ABCDE13 ABCDE14 ABCDE15 ABCDE16 \
0 9 10 11 12 13 14 15 16
ABCDE17 ABCDE18 ABCDE19 ABCDE20 ABCDE21 ABCDE22 ABCDE23 ABCDE24 \
0 17 18 19 20 21 22 23 24
ABCDE25 ABCDE26 ABCDE27 ABCDE28 ABCDE29 ABCDE30 ABCDE31 ABCDE32 \
0 25 26 27 28 29 30 31 32
ABCDE33 ABCDE34 ABCDE35 ABCDE36 ABCDE37 ABCDE38 ABCDE39
0 33 34 35 36 37 38 39
没有省略号,将显示所有列。
将两个选项结合在一起
在这一点上非常简单。
pd.set_option('display.width', 1000)
使用1000允许更长的时间。 pd.set_option('display.max_columns', 1000)
还允许宽数据帧。print df
ABCDE0 ABCDE1 ABCDE2 ABCDE3 ABCDE4 ABCDE5 ABCDE6 ABCDE7 ABCDE8 ABCDE9 ABCDE10 ABCDE11 ABCDE12 ABCDE13 ABCDE14 ABCDE15 ABCDE16 ABCDE17 ABCDE18 ABCDE19 ABCDE20 ABCDE21 ABCDE22 ABCDE23 ABCDE24 ABCDE25 ABCDE26 ABCDE27 ABCDE28 ABCDE29 ABCDE30 ABCDE31 ABCDE32 ABCDE33 ABCDE34 ABCDE35 ABCDE36 ABCDE37 ABCDE38 ABCDE39
0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
使用数据
print df
TFs No Esenciales Genes regulados Genes.1 Regulados Positivamente Genes.2 Regulados.1 Negativamente No.1 Tentativo de genes a silenciar No.2 Real de.1 genes.1 a.1 silenciar.1 No.3 Tentativo.1 de.2 genes.2 a.2 inducir
0 146 YdeO 20 18 2 2 2 0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
大穴
运行此命令时,可能看不到您在此处所做的滚动魔术。这是因为您的终端可能不会向右滚动。下面是来自jupyter-notebook的屏幕截图。它看起来不正确,因为文本已被换行。但是,在字符串中没有换行,这是因为当我将其复制并粘贴到堆栈溢出时,它会正确显示。
关于python - 如何在不丢失格式的情况下在终端中打印df?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38487945/