【问题标题】:Display DataFrame with Math Symbol in column headers in Jupyter Notebook在 Jupyter Notebook 的列标题中显示带有数学符号的 DataFrame
【发布时间】:2020-08-13 16:25:25
【问题描述】:

我有一个 DataFrame,我想用聚合函数的希腊名称显示它。

df=pd.DataFrame(
      [["A",1,2],["A",3,4],["B",5,6],["B",7,8]], 
      columns=["AB","C", "N"]
)
df=df.groupby(df.AB).agg({
     "C":["count", "sum", "mean", "std"], 
     "N":["sum", "mean", "std"]
})

看起来像:

我想制作如下所示的东西:

我已经能够生产了:

import pandas as pd
import matplotlib.pyplot as plt

data = [[str(cell) for cell in row] for row in df.values]
columns = [
    r"Count", 
    r"C $\Sigma$", 
    r"C $\bar{x}$", 
    r"C $\sigma$",
    r"N $\Sigma$", 
    r"N $\bar{x}$", 
    r"N $\sigma$"]
rows = ["A", "B"]

the_table = plt.table(cellText=data,
                  rowLabels=rows,
                  colLabels=columns)

the_table.scale(4,4)
the_table.set_fontsize(24)
plt.tick_params(axis='x', which='both', bottom=False, top=False, labelbottom=False)
plt.tick_params(axis='y', which='both', right=False, left=False, labelleft=False)
for pos in ['right','top','bottom','left']:
    plt.gca().spines[pos].set_visible(False)    

df.to_latex() 功能看起来可能足以满足我的目的,但它呈现为 jupyter 不支持的表格。

感谢下面的 Elliot,这样的东西效果很好

substitutions = {
    "sum":"\u03a3",
    "mean":"\u03bc",
    "std":"\u03c3",
    True:"\u2705",
    False:"\u274c",
    "count":"N",
}

pretty = df.\
    rename(substitutions, axis=0).\
    rename(substitutions, axis=1)

并与:

%%HTML
<style type="text/css">
table.dataframe td, table.dataframe th {
    border: 1px  black solid !important;
  color: black !important;
}
th {
  text-align: center !important;
}
</style>

可以生产

【问题讨论】:

    标签: dataframe matplotlib latex jupyter multi-index


    【解决方案1】:

    您可以使用 Unicode 字符来获取您想要的字符标题,而无需使用to_latex()

    如果你想要边框,你可以使用to_htmlcustom options 来格式化表格。

    【讨论】:

      猜你喜欢
      • 2019-01-28
      • 2021-04-10
      • 2018-04-11
      • 2019-02-25
      • 2019-11-26
      • 2016-07-15
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      相关资源
      最近更新 更多