使用pandas.DataFrame.to_html时如何设置列宽?

时间:2018-09-30 16:58:09

标签: python pandas

我已经读过this,但是对于使用pandas.DataFrame.to_html时如何设置列宽仍然感到困惑。

import datetime
import pandas

data = {'Los Angles': {datetime.date(2018, 9, 24): 20.5, datetime.date(2018, 9, 25): 1517.1},
        'London': {datetime.date(2018, 9, 24): 0, datetime.date(2018, 9, 25): 1767.4},
        'Kansas City': {datetime.date(2018, 9, 24): 10, datetime.date(2018, 9, 25): 1.4}}

df = pandas.DataFrame(data=data)

html = df.to_html()

上面的代码导致: df.to_html result

如何强制将列宽设置为相同?

3 个答案:

答案 0 :(得分:2)

尝试一下:

import datetime
import pandas

data = {'Los Angles': {datetime.date(2018, 9, 24): 20.5, datetime.date(2018, 9, 25): 1517.1},
        'London': {datetime.date(2018, 9, 24): 0, datetime.date(2018, 9, 25): 1767.4},
        'Kansas City': {datetime.date(2018, 9, 24): 10, datetime.date(2018, 9, 25): 1.4}}

df = pandas.DataFrame(data=data)
pandas.set_option('display.max_colwidth', 40)

html = df.to_html()

答案 1 :(得分:2)

我发现最好使用set_table_attributes函数。 然后,您可以进行设置表格的CSS类。如果输出中有很多表,那么可读性会更好。

import datetime
import pandas

data = {'Los Angles': {datetime.date(2018, 9, 24): 20.5, datetime.date(2018, 9, 25): 1517.1},
        'London': {datetime.date(2018, 9, 24): 0, datetime.date(2018, 9, 25): 1767.4},
        'Kansas City': {datetime.date(2018, 9, 24): 10, datetime.date(2018, 9, 25): 1.4}}

df = pandas.DataFrame(data=data)

html = df.set_table_attributes('class="table-style"').to_html()

您的CSS可能如下所示:

    .table-style {
                  width: 100%;
}

    .table-style td {
                  width: 100px;
}

答案 2 :(得分:0)

您现在可以设置 to_html

的 col_space 参数
df.to_html(col_space='75px')