8

我想将一个简单的表格输出到一个 PDF 文件,其中包含一些条件格式,根据值对单元格进行 2 或 3 比例着色。就像 Microsoft Excel 条件格式选项中的红白绿颜色缩放一样。

import pandas
import numpy as np
df = pandas.DataFrame(np.random.randn(10, 2), columns=list('ab'))
print df

#Output:
          a         b
0 -1.625192 -0.949186
1 -0.089884  0.825922
2  2.117651 -0.046258
3 -0.921751 -0.144447
4 -0.294095 -1.774725
5 -0.780523 -0.435909
6  0.544958  0.303268
7  0.014335  0.036182
8 -0.756565  0.120711
9  1.145055  0.542755

现在,我想将其输出到表格中的 PDF,其中列的条件格式为 3 比例,列的条件格式a独立,b因此我的输出类似于 Excel 中的以下示例。

有点像这样,但按列: 在此处输入图像描述

4

2 回答 2

11

好的,我做了更多的研究,这几乎涵盖了我想做的事情。使用 matplotlib 颜色图就可以了。这是地图颜色选项的链接。 matplotlib 颜色图

我选择了 RdYlGn 着色。

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt

df = pd.DataFrame(np.random.randn(10, 8), columns=list('abcdefgh'))

print df

#Round to two digits to print nicely
vals = np.around(df.values, 2)
#Normalize data to [0, 1] range for color mapping below
normal = (df - df.min()) / (df.max() - df.min())

fig = plt.figure()
ax = fig.add_subplot(111)
ax.axis('off')
the_table=ax.table(cellText=vals, rowLabels=df.index, colLabels=df.columns, 
                   loc='center', cellColours=plt.cm.RdYlGn(normal),animated=True)
fig.savefig("table.png")

输出:

代码输出

于 2013-07-22T14:22:17.143 回答
2

我来到这里寻找一种使用表格进行条件格式设置的方法(而不是在 PDF 上打印)。无论如何,如果您对 pandas 感兴趣,有一个样式模块可以输出增强的表格着色

import seaborn as sns

cm = sns.light_palette("green", as_cmap=True)
df.style.background_gradient(cmap = cm)

字幕选项

于 2019-11-18T20:02:34.900 回答