pandas 设置列宽

3zwtqj6y  于 2023-09-29  发布在  其他
关注(0)|答案(2)|浏览(110)

我想把列宽设置为该列的最大字符串长度,实际上我想调整列的宽度。
下面是我的代码:

styler = df.style

for column in df:
    column_length = df[column].astype(str).str.len().max()
    #styler.set_properties(subset=[column], **{'width': '200px'})
    styler.set_properties(subset=[column], **{'width': str(column_length)+'px'})
 
styler.to_excel('C:/Users/test.xlsx', index=False)

导出的excel文件中没有设置列宽,我做错了什么?

sd2nnvve

sd2nnvve1#

如果有人有同样的问题,这里是解决方案:

writer = pd.ExcelWriter('C:/Users/test.xlsx')

styler.to_excel(writer, sheet_name='report', index=False)

for column in df:
   column_length = max((
        df[column].astype(str).str.len().max(),  # len of largest item
        len(str(df[column].name))  # len of column name/header
        )) + 1  # adding a little extra space
    col_idx = df.columns.get_loc(column)
    writer.sheets['report'].set_column(col_idx, col_idx, column_length)

writer.save()
ef1yzkbh

ef1yzkbh2#

您可以使用pandas.options.display.max_colwidth = ...并设置最大长度。
要设置导出的excel列宽,请参阅此stackoverflow页面here

相关问题