舍入 pandas 数据透视表和 SciPy 的 stats.mode 的数字输出

Rounding the numeric output of pandas pivot tables and SciPy's stats.mode

平均分不是91.144105,如何显示91.1? 而不是模式分数显示为 ([90.0], [77]),如何显示而不是 90?

代码片段和输出:

from scipy import stats, import numpy as np

pd.pivot_table(df_inspections_violations, index= ['ACTIVITY YEAR', 'FACILITY ZIP'], values= "SCORE", 
               aggfunc= ['mean', 'median', stats.mode])

您可以使用 style.format (documentation)。

但是您最好将 mode SCORE 列拆分为 value 和(我猜)index,这样您就可以使用字典来控制每一列,例如:

df = pd.DataFrame({
    'a': np.linspace(0, 1, 7),
    'b': np.linspace(31, 90, 7),
    'c': np.arange(10, 17)
})

df.style.format({
    'a': "{:.2f}",
    'b': "{:.1f}",
    'c': int,
})

输出

    a       b       c
0   0.00    31.0    10
1   0.17    40.8    11
2   0.33    50.7    12
3   0.50    60.5    13
4   0.67    70.3    14
5   0.83    80.2    15
6   1.00    90.0    16