pandas DataFrame.to_html使用col_space列表参数设置列宽异常咨询
你遇到的这个现象通常是两个原因导致的:
第一是你使用的pandas版本低于1.3.0,该版本之前的col_space参数对列表类型的传入值存在兼容性bug,会直接将整个列表序列化为字符串赋值给所有列的min-width属性。
第二是如果你的列表长度和实际要匹配的列数(含索引列)不匹配,也可能出现异常。
方法1:使用列表传参(适用于pandas≥1.3.0)
列表内的元素按顺序对应列宽度,规则如下:
- 如果你调用
to_html时设置了index=False不输出索引列,列表长度要和你的DataFrame数据列的数量完全一致 - 如果你保留默认的
index=True输出索引列,列表第一个元素对应索引列的宽度,后续元素依次对应各个数据列的宽度
示例代码(对应你的场景,6个数据列+1个索引列):
# col_space列表长度为7,对应索引列+6个数据列的宽度 html_content = df.to_html(col_space=[200, 75, 75, 75, 75, 75, 75])
方法2:使用字典传参(全版本兼容)
如果你的pandas版本较低无法升级,可以用字典形式指定每列的宽度,字典key为列名,索引列的key固定为index:
html_content = df.to_html( col_space={ "index": 200, "filename": 75, "type": 75, "status": 75, "message": 75, "user": 75, "date": 75 } )
内容的提问来源于stack exchange,提问作者Puzzlemaster
相关产品推荐
相关产品推荐

