我正在编写一个函数来显示具有相同样式的表格。我无法将浮动列中的数字减少到百分之二。相反,删除多余的零。
我的代码:
def style_data(data):
data = np.round(data, decimals=2)
#оглавление
th_props = [
('font-size', '14px'),
('text-align', 'center'),
('border', "0.5px solid black")
]
#офоромление содержания
td_props = [
('font-size', '13px'),
('text-align', 'center'),
('border', "0.5px solid black")
]
#set style
styles = [
dict(selector="th", props=th_props), #наименование колонок
dict(selector="td", props=td_props), #данные таблицы
dict(selector="caption", #оглавление таблицы
props=[("text-align", "center"),
("font-size", "125%"),
('font-weight', 'bold'),
("color", 'black'),
('border', "1px solid black")])
]
return (data
.style
.set_table_styles(styles) #применение set styles
.set_caption('Топ 5 игровых платформ за весь период')
.set_properties(**{'width': '200px'}) #изменение ширины ячеек
.hide_index()
)
问题是表带有不同数量的列。如果应用于 .style - .format('{:.2f}'),则在没有子集的情况下,代码会对具有非数字数据类型的列发誓。然后我尝试使用 d = None 设置参数(禁用不重要参数的能力),尝试了 *args、**kwargs。它对我不起作用,但总的来说我不想手动设置一堆参数。
也不是代码:
data = np.round(data, decimals=2)
我做了:
for i in top_platforms.columns:
if pd.api.types.is_numeric_dtype(top_platforms.columns):
top_platforms.columns=round(top_platforms.columns), 2
它没有用,但总的来说我认为结果很草率。
我希望函数在没有大量参数输入的情况下工作,并且在数字列中四舍五入到百分之二而没有额外的零。请帮忙

按列类型进行选择。
我们有:
选择并舍入:
现在 df:
更新
如果问题是由于应用样式引起的,那么只需使用:
无需计算带有数字的列并四舍五入。