我对使用PyCharm IDE相对较新,并且在内置控制台会话中无法找到更好地塑造输出的方法。我通常使用非常宽的数据帧,可以很容易地放在我的显示器上,但显示器正在切割和包装它们,而不是需要它们。
是否有人知道更改此行为的设置以利用屏幕的整个宽度?
编辑:我没有足够的声誉来发布截图,但链接如下: http://imgur.com/iiBK3iU
我想在几列之后阻止它包装(例如,'ReadmitRate'列应该紧靠'SNFDaysPerSNFCase'的右侧)
答案 0 :(得分:51)
似乎我错误地认为问题是PyCharm中的问题(例如,可以在设置或偏好中解决)。它实际上与控制台会话本身有关。控制台尝试自动检测显示区域的宽度,但是当失败时它默认为80个字符。可以使用以下命令覆盖此行为:
import pandas as pd
desired_width = 320
pd.set_option('display.width', desired_width)
当然,您可以将desired_width
设置为显示器可以容忍的内容。
感谢@TidB提出的建议,即我最初的关注点并未集中在正确的区域。
答案 1 :(得分:19)
对我来说,仅在pycharm中设置'display.width'
是不够的,它会一直以截断形式显示。
但是,将选项pd.set_option("display.max_columns", 10)
与显示宽度一起添加是可行的,并且我能够在“运行”输出中看到整个数据帧。
总结:
import pandas as pd
pd.set_option('display.width', 400)
pd.set_option('display.max_columns', 10)
答案 2 :(得分:16)
打印Pandas数据帧时,{
"TempRequest" :{
"TempR1" : {
"id" : "1212",
"name" : "app",
}
}
}
的答案很有效(谢谢!)。
但是,如果要打印NumPy数组,还需要设置@mattvivier
:
np.set_printoptions
答案 3 :(得分:1)
在重新安装@mattvivier's answer之后,我注意到pandas仍然最多只能输出5列,为解决此问题,我添加了另一行代码以增加显示的最大列数。
import pandas as pd
pd.set_option('display.max_columns', 15)
desired_width = 200
pd.set_option('display.width', desired_width)
在Python控制台中执行代码时,效果很好。
答案 4 :(得分:1)
def pd_set_df_view_options(max_rows=1000, max_columns=350, display_width=320):
# Show more than 10 or 20 rows when a dataframe comes back.
pd.set_option('display.max_rows', max_rows)
# Columns displayed in debug view
pd.set_option('display.max_columns', max_columns)
pd.set_option('display.width', display_width)
# run
pd_set_df_view_options(max_rows=1000, max_columns=350, display_width=320)
答案 5 :(得分:0)
添加到 Contago 的回答中:
通用设置
import numpy as np
import pandas as pd
desired_width = 320
## dataframe ##
# increase dataframe print area
pd.set_option('display.width', desired_width)
# increase no. of df columns displayed
pd.set_option('display.max_columns', n)
## numpy array ##
# increase numpy array print area
np.set_printoptions(linewidth = desired_width)
特定于上下文的(临时)
# dataframe
with pd.option_context('display.max_columns', 20,
'display.width', 320):
print(df)
# numpy array
with np.printoptions(linewidth=320):
print(np.array(df))