舍入 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
平均分不是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