如何使用lambda对Pandas DataFrame新列的百分比值保留两位小数?
解决DataFrame百分比列保留两位小数的问题
方法1:直接用round()保留小数
生成百分比列时,对计算结果调用round(2)即可保留两位小数,同时保持数值类型:
FavCountSum = Merge3['Favorite_Count'].sum() Merge3 = Merge3.assign(Favorite_Color_Percent=lambda x: (x.Favorite_Count / FavCountSum).round(2))
方法2:转为带%符号的字符串格式
如果需要将百分比以带百分号的字符串形式展示(比如15.67%),可以用字符串格式化:
FavCountSum = Merge3['Favorite_Count'].sum() Merge3 = Merge3.assign(Favorite_Color_Percent=lambda x: (x.Favorite_Count / FavCountSum).apply(lambda y: "{:.2%}".format(y)))
方法3:全局设置显示格式(不修改原始数据)
如果只是希望显示时保留两位小数,但不想改变数据本身的精度,可以设置pandas的显示选项:
import pandas as pd pd.set_option('display.float_format', '{:.2f}'.format)
设置后整个DataFrame的浮点数都会以两位小数展示,但实际存储的数值仍是精确值。
内容的提问来源于stack exchange,提问作者IanAnthony1
相关产品推荐
相关产品推荐

