【问题标题】:Giving a data frame a title and styling columns with Pandas Python使用 Pandas Python 为数据框提供标题和样式列
【发布时间】:2021-11-17 06:21:52
【问题描述】:

我想给dict_val 数据框一个位于title 中心的标题。我还尝试在 Numbers 列上用逗号分隔每 3 位数字,如何为数据框指定标题并设置 a 列的样式并获得下面的预期输出?

import pandas as pd
import numpy as np

title = 'Number and Numbers 2 Comparison'
numbers = np.array([123242737.4923,679754672.3849]) 
numbers2 = np.array([123523,467895]) 

dict_val = pd.DataFrame({'Numbers':numbers.round(2),'Numbers 2': numbers2})
display(dict_val)

输出:

预期输出:

  Number and Numbers 2 Comparison
    Numbers         Numbers 2
0   123,242,737.49  123523
1   679,754,672.38  467895

【问题讨论】:

    标签: python pandas database numpy format


    【解决方案1】:

    使用Styler.format:

    dict_val.style.format(formatter={'Numbers': '{:,.2f}'})
    

    创建MultiIndex 并设置样式以居中对齐:

    text = 'Number and Numbers 2 Comparison'
    
    dict_val.columns = pd.MultiIndex.from_product([[text], dict_val.columns])
    print (dict_val)
      Number and Numbers 2 Comparison          
                              Numbers Numbers 2
    0                    1.232427e+08    123523
    1                    6.797547e+08    467895
    
    css = [ {'selector': 'th.col_heading.level0', 'props': 'text-align: center;'}]
    dict_val.style.set_table_styles(css, overwrite=False).format(formatter={(text, 'Numbers'): '{:,.2f}'})
    

    【讨论】:

    • 谢谢你的作品有没有办法我可以将标题放在列的顶部
    • @georgehere - 在 excel 文件中?
    • 不,我只想为数据框设置一个标题,它是变量title。完成后display(dict_val) 应该有标题,然后是底部的列,就像预期的输出一样
    • @georgehere - 答案已编辑。
    • 很抱歉给了太多麻烦,但不幸的是,列名不在值之上,我该如何解决这个问题,列名Numbers and Numbers 2 更靠右一点。我已经发布了上面编辑过的帖子的截图
    猜你喜欢
    • 2019-08-10
    • 2014-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-02
    • 1970-01-01
    • 1970-01-01
    • 2020-02-06
    相关资源
    最近更新 更多