Getting wider output in PyCharm's built-in console

前端 未结 4 2061
情歌与酒
情歌与酒 2021-01-30 06:54

I\'m relatively new to using the PyCharm IDE, and have been unable to find a way to better shape the output when in a built-in console session. I\'m typically working with prett

相关标签:
4条回答
  • 2021-01-30 06:57

    The answer by @mattvivier works nicely when printing Pandas dataframes (thanks!).

    However, if you are printing NumPy arrays, you need to set np.set_printoptions as well:

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

    See docs on NumPy and set_printoptions.

    0 讨论(0)
  • 2021-01-30 07:13

    For me, just setting 'display.width' wasn't enough in pycharm, it kept displaying in truncated form.

    However, adding the option pd.set_option("display.max_columns", 10) together with display width worked and I was able to see the whole dataframe printed in the "run" output.

    In summary:

    import pandas as pd    
    pd.set_option('display.width', 400)
    pd.set_option('display.max_columns', 10)
    
    0 讨论(0)
  • 2021-01-30 07:14
    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)
    
    0 讨论(0)
  • 2021-01-30 07:15

    It appears I was mistaken in thinking that the issue was one in PyCharm (that could be solved, for example, in a setting or preference.) It actually has to do with the console session itself. The console attempts to auto-detect the width of the display area, but when that fails it defaults to 80 characters. This behavior can be overridden with:

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

    Where you can of course set the desired_width to whatever your display will tolerate. Thanks to @TidB for the suggestion that my initial concern wasn't focused in the right area.

    0 讨论(0)
提交回复
热议问题