【发布时间】:2019-08-27 22:05:20
【问题描述】:
我面临的问题与我如何强制“运行”窗口显示给定 pandas 数据框的所有列有关,而不使其适合窗口的大小(这对我来说是通过截断列名称,或不显示所有列)。
换句话说,我需要将数据显示在其预期的行上,如果窗口视图太小而无法显示所有列,则应该出现一个水平条(像往常一样),以便我轻松遍历数据。
背景: 我已经处理了一些数据,在这些数据中我会自动选择数据的不同部分并将其以表格格式存储在特定的“.h5”文件中。这是使用 pandas 数据帧和“to_hdf”函数完成的。然后我读了它并得到以下信息:
数据集由 35 列(不包括时间列)组成,每列中有 x 个条目。对于这篇文章,他们被任意命名,以说明问题。
注意:
- 在
File -> Settings -> Editor -> General的“软包装”下禁用软包装 - 我刚刚执行了 Python 3.7 和 PyCharm Community Edition 2018.3.5 的全新安装(最初在 2019.1 版本中存在一些问题),并从我的计算机中的 PyCharm 导出文件中导入了一些 PyCharm 设置
- 水平滚动条似乎已禁用。在任何时候都不会出现。这很奇怪,看到我回家的电脑给了我水平滚动条
- 由于“运行”窗口中的输出在运行脚本之前会根据窗口的大小进行换行和截断(即较小的窗口与全屏窗口),因此水平滚动条很可能会在其他效果出现后重新激活被移除
我要完成三件事:
- 显示数据框的所有列,同时允许我使用水平滚动条滚动浏览这些列(目前似乎已禁用),这意味着:
- 列名不换行,请参见上图中的标记 (1) 和 (2)。由于“运行”窗口的大小限制,没有截断/删除列,请参见同一图像中的标记 (3)。
- 次要任务:目前,“时间”列(设置为行索引)在此打印输出中仅打印为日期,同时还存储小时、分钟和秒。希望这会在 1. 和 2. 修复后自动修复(我的其他表格显示完整日期 + 小时等,没有问题)。
这是我尝试过的
我使用以下两行来稍微改进打印输出:
pd.set_option('display.max_columns', 20)
pd.set_option('display.width', 2000)
但是,并非所有 35 列都显示出来,请参阅标记 (1)/“...”分数。当我将允许的列数从 20 增加到 40 时,pd.set_option('display.max_columns', 40),会发生这种情况:
看来我们又回到了原点。幸运的是,其中一个负面影响消失了,即截断效应,即。我认为删除显示的列。
尽管如此,列的换行仍然会发生,因此现在行数增加了一倍,而应该可以在各自的行上显示所有内容,同时自动显示一个水平条以让用户遍历这些数据。
我还查看了link 以了解更多关于 pandas 的 set_option 方法的选项。除了我使用过的其他行之外,我还找到并尝试了这一行 pd.set_option('expand_frame_repr', True)。但就我而言,它并没有改变任何东西。
有什么想法吗?
【问题讨论】:
-
对于我们所有没有 PyCharm 的人来说,这主要是一个 PyCharm 问题,还是更通用? (我正在寻找通用答案,而不是 PyCharm 答案)。另外,如果它充分回答了您,您能否接受一个答案,或者发布您自己的答案?
-
据我所知,这主要是 PyCharm 问题。我不确定这是否适用于使用数据帧的其他软件。当时我只是通过专注于选定数量的列而不是尝试同时查看所有列来避免这个问题。因此,我看不到合适的解决方案。
标签: dataframe pycharm word-wrap truncation