使用style.hide_index()后转会费列小数多零,如何恢复原格式?
问题:隐藏DataFrame索引后恢复Transfer Fee列的小数格式
问题场景
我处理以下代码:
df_top_50= df[['Rank', 'Player', 'Position', 'Age', 'Nationality', 'Club Left', 'Club Joined', 'Transfer Fee (EUR)']]
执行后DataFrame显示如下:
Rank Player Position Age Nationality Club Left Club Joined Transfer Fee (EUR) 1 1 Antony Forward 22 Netherlands Ajax Amsterdam Manchester United 95.00 2 2 Wesley Fofana Defender 21 England Leicester City Chelsea FC 80.40 3 3 Aurélien Tchouameni Midfielder 22 Monaco AS Monaco Real Madrid 80.00
为隐藏索引列,我修改代码为:
df_top_50= df[['Rank', 'Player', 'Position', 'Age', 'Nationality', 'Club Left', 'Club Joined', 'Transfer Fee (EUR)']].style.hide_index()
虽然成功隐藏了索引,但Transfer Fee (EUR)列小数点后多出多个零,显示如下:
Rank Player Position Age Nationality Club Left Club Joined Transfer Fee (EUR) 1 Antony Forward 22 Netherlands Ajax Amsterdam Manchester United 95.000000 2 Wesley Fofana Defender 21 England Leicester City Chelsea FC 80.400000 3 Aurélien Tchouameni Midfielder 22 Monaco AS Monaco Real Madrid 80.000000
请问如何恢复该列原本的显示格式?
解决方案
可以使用style.format()方法指定Transfer Fee (EUR)列的显示格式,保留两位小数,同时结合hide_index()隐藏索引,代码如下:
df_top_50 = df[['Rank', 'Player', 'Position', 'Age', 'Nationality', 'Club Left', 'Club Joined', 'Transfer Fee (EUR)']].style.format({ 'Transfer Fee (EUR)': '{:.2f}' }).hide_index()
这样既隐藏了索引列,又能让Transfer Fee (EUR)列保持两位小数的显示格式,和最初的输出一致。
如果需要更简洁的写法,也可以通过subset参数指定目标列:
df_top_50 = df[['Rank', 'Player', 'Position', 'Age', 'Nationality', 'Club Left', 'Club Joined', 'Transfer Fee (EUR)']].style.format('{:.2f}', subset=['Transfer Fee (EUR)']).hide_index()
内容的提问来源于stack exchange,提问作者athang007
相关产品推荐
相关产品推荐

