我构建了一个熊猫结果数据框。该数据框充当表格。有 MultiIndexed 列,每行代表一个名称,即 index=['name1','name2',...]
创建 DataFrame 时。我想显示此表并将其另存为 png(或任何图形格式)。目前,我能得到的最接近的是将它转换为 html,但我想要一个 png。看起来有人问过类似的问题,例如 How to save the Pandas dataframe/series data as a figure?
但是,标记的解决方案将数据框转换为线图(不是表格),而另一个解决方案依赖于 PySide,我想远离它只是因为我不能在 linux 上 pip 安装它。我希望此代码易于移植。我真的很期待使用 python 轻松创建 png 表。感谢所有帮助。
原文由 Shatnerz 发布,翻译遵循 CC BY-SA 4.0 许可协议
Pandas 允许您使用 matplotlib 绘制表格(详情请参见 此处)。通常这会将表格直接绘制到一个图(带有轴和所有内容)上,这不是您想要的。但是,可以先删除这些:
输出可能不是最漂亮的,但您可以 在此处 找到 table() 函数的其他参数。也感谢 这篇文章 提供了有关如何在 matplotlib 中删除轴的信息。
编辑:
这是使用上述方法进行绘图时模拟多指标的一种(诚然非常老套)方法。如果你有一个名为 df 的多索引数据框,它看起来像:
首先重置索引,使它们成为普通列
通过将它们设置为空字符串,从高阶多索引列中删除所有重复项(在我的示例中,我在“first”中只有重复索引):
将“索引”上的列名更改为空字符串
现在调用表函数,但将表中的所有行标签设置为空字符串(这确保不显示绘图的实际索引):
等瞧:
您的不太漂亮但功能齐全的多索引表。
编辑:弃用警告
正如评论中所指出的,
table
的导入语句:现在在较新版本的 pandas 中已弃用,取而代之的是:
编辑:弃用警告 2
ix
索引器现已完全 弃用,因此我们应该改用loc
索引器。代替:和