格式化多索引数组中的数字 Pandas

Formating numbers in multiindex array Pandas

我有一个如下所示的数据框:

    Admin  ...  Unnamed: 14
Job Family Name                    Values                     ...             
Dentist    McDentistFace, Dentist  UDS Encounters   0.000000  ...     1.000000
                                   Actual FTE       0.000000  ...     1.000000
                                   UDS Encounters2       NaN  ...  1475.000000
                                   Actual FTE2           NaN  ...     7.589426

其中 Job Family、Name 和 Values 都是多索引的维度。

我正在尝试格式化文件中的浮点值,但似乎无法正常工作。我已经能够用这一行突出显示某些行:

for i in flagged_providers:
ind = flagged_providers.index(i) * 4
for q in i.results.keys():
    style.apply(highlight_col, axis=0, subset=(style.index[ind: ind + 4], q))
    # style.apply(format_numbers, axis=0, subset=(style.index[ind: ind + 2], q))

其中 format_numbers 是:

def format_numbers(s):
return f'{s:,.2f}'

我也试过这个:

for i in flagged_providers:
    format_dict[(i.jfam, i.name)] = '{:.2f}'
    format_dict[(i.jfam, i.name)] = '{:.2f}'
style.format(formatter=format_dict)

但我似乎无法让它正常工作。希望有什么想法?我想将前两行格式化为百分比,然后使用 to_excel 函数导出到 excel。

我终于明白了。可能是更好的方法,但有效的方法是:

style.applymap(lambda x: 'number-format:0.00%;', subset=(style.index[ind: ind + 2], locations))