相关疑难解决方法(0)

有没有办法用pandas.ExcelWriter自动调整Excel列宽?

我被要求生成一些Excel报告.我目前正在为我的数据大量使用pandas,所以我当然希望使用pandas.ExcelWriter方法来生成这些报告.但是固定的列宽是个问题.

到目前为止我的代码很简单.假设我有一个名为'df'的数据框:

writer = pd.ExcelWriter(excel_file_path)
df.to_excel(writer, sheet_name="Summary")
Run Code Online (Sandbox Code Playgroud)

我正在查看pandas代码,我真的没有看到任何设置列宽的选项.宇宙中有没有一个技巧可以使列自动调整到数据?或者我可以在xlsx文件之后做些什么来调整列宽?

(我正在使用OpenPyXL库,并生成.xlsx文件 - 如果这有任何区别.)

谢谢.

python excel pandas openpyxl

68
推荐指数
10
解决办法
4万
查看次数

将pandas DataFrame写入Excel,使用不同列的不同格式

我试图写一个大熊猫DataFrame到一个.xlsx文件,其中不同的数值列将有不同的格式.例如,有些只会显示两个小数位,有些会显示无,有些会被格式化为带有"%"符号的百分比等.

我注意到DataFrame.to_html()有一个formatters参数允许人们这样做,将不同的格式映射到不同的列.但是,该DataFrame.to_excel()方法没有类似的参数.我们拥有的最多的是float_format所有数字都是全球性的.

我读过许多SO帖子,这些帖子至少部分与我的问题相关,例如:

在pandas API中是否有其他更方便的与Excel相关的函数/属性可以在这里提供帮助,或类似的东西openpyxl,或者可能某种方式将输出格式元数据直接指定到每个列,DataFrame然后由不同的输出器在下游解释?

python excel pandas openpyxl

5
推荐指数
1
解决办法
2万
查看次数

为什么 pandas Styler 'to_excel' 方法不保存百分比格式?

我正在使用 pandas Styler 类将某些列格式化为百分比。当我将输出写入 Excel 时,列仍然显示为浮点数。为什么我能够正确格式化和保存颜色,但不能正确格式化和保存百分比?

import pandas as pd
import numpy as np

def color_negative_red(val):
    color = 'red' if val < 0 else 'black'
    return 'color: %s' % color

np.random.seed(24)
df = pd.DataFrame({'A': np.linspace(1, 10, 10)})
df = pd.concat([df, pd.DataFrame(np.random.randn(10, 4), columns=list('BCDE'))],axis=1)
Run Code Online (Sandbox Code Playgroud)

这会产生这样的结果:

df.style.format('{:.2%}').applymap(color_negative_red)
Run Code Online (Sandbox Code Playgroud)

格式化数据框

但保存到 Excel 会将百分比恢复为浮点数:

df.style.format('{:.2%}').applymap(color_negative_red).to_excel('format_test.xlsx')
Run Code Online (Sandbox Code Playgroud)

Excel 输出

该怎么办?

python dataframe pandas pandas-styles

5
推荐指数
1
解决办法
2721
查看次数

标签 统计

pandas ×3

python ×3

excel ×2

openpyxl ×2

dataframe ×1

pandas-styles ×1