我面临的问题与如何强制“运行”窗口显示给定pandas数据框的所有列有关,而不将其适应窗口大小(这对我来说要么通过截断列名,要么通过未显示所有列来实现)。
换句话说,我需要将数据显示在它们预期的行上,并且如果窗口视图太小以无法显示所有列,则应出现水平滚动条(像通常一样),以便我可以轻松遍历数据。
背景:
我处理了一些数据,其中我自动选择并以表格格式存储不同部分的数据在特定的".h5"文件中。这是使用pandas数据帧和“to_hdf”函数完成的。然后我读取它并获得以下结果:
数据集包含35列(不包括时间列),每个列中都有x个条目。为了说明问题,它们已被随意命名。
请注意:
- 在“文件 -> 设置 -> 编辑器 -> 一般”下禁用软换行
- 我刚刚安装了Python 3.7和PyCharm Community Edition 2018.3.5(最初使用2019.1版本时出现了一些问题),并导入了来自我电脑回家的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)
, 发生了这种情况:
看起来我们回到了原点。幸运的是,负面影响之一消失了,即截断效应,即所展示的列的移除。
然而,仍然存在列换行的问题,导致现在有两倍数量的行,而它应该可以在自己的行上展示所有内容,同时自动展示一个水平条以让用户遍历这些数据。
我还查看了这个链接,以了解更多Pandas set_option方法的选项。我发现并尝试了这行代码,pd.set_option('expand_frame_repr', True)
,除了我已经使用的其他行外,但在我的情况下它没有改变任何东西。
有什么想法吗?