python 在PyCharm的内置控制台中获得更宽的输出

rjjhvcjd  于 2023-05-21  发布在  Python
关注(0)|答案(5)|浏览(638)

我对使用PyCharmIDE相对来说是个新手,在内置的控制台会话中,我一直无法找到一种更好地塑造输出的方法。我通常使用相当宽的 Dataframe ,这将很容易地适合我的显示器,但显示器切割和 Package 他们比需要的快得多。
有谁知道一个设置来改变这种行为,以利用我的屏幕的全宽?

我想防止它仅在几列之后换行(例如,列'ReadmitRate'应该紧挨着'SNFDaysPerSNFCase'的右边)

cnjp1d6j

cnjp1d6j1#

对我来说,仅仅在pycharm中设置'display.width'是不够的,它一直以截断的形式显示。
然而,添加选项pd.set_option("display.max_columns", 10)和显示宽度起作用了,我能够看到整个 Dataframe 打印在“运行”输出中。
总结如下:

import pandas as pd    
pd.set_option('display.width', 400)
pd.set_option('display.max_columns', 10)
dsf9zpds

dsf9zpds2#

看来我错误地认为这个问题是PyCharm中的一个问题(例如,可以在设置或首选项中解决)。它实际上与控制台会话本身有关。控制台尝试自动检测显示区域的宽度,但如果检测失败,则默认为80个字符。此行为可以使用以下命令覆盖:

import pandas as pd
desired_width = 320    
pd.set_option('display.width', desired_width)

当然,您可以将desired_width设置为您的显示器所能容忍的任何值。感谢@TidB的建议,我最初的关注没有集中在正确的领域。

daolsyd0

daolsyd03#

@mattvivier的答案在打印Pandas Dataframe 时工作得很好(谢谢!).
但是,如果你要打印NumPy数组,你还需要设置np.set_printoptions

import pandas as pd
import numpy as np
desired_width = 320
pd.set_option('display.width', desired_width)
np.set_printoptions(linewidth=desired_width)

参见docs on NumPy and set_printoptions

wmtdaxz3

wmtdaxz34#

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)
fdbelqdn

fdbelqdn5#

添加到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))

相关问题