DataFrame列值取整失效及拼接%符号实现求助
问题解决方法
原代码无效的原因
treasury_shares['%Stake'].apply(np.floor)仅计算结果但未赋值回原列,原数据不会发生变化np.floor是向下取整,不符合你需要的四舍五入需求
正确实现方式
你需要完成「四舍五入取整」和「拼接%符号」两个操作,以下是两种简洁的实现方法:
方法1:分步处理
# 1. 将数值乘以100后四舍五入取整 treasury_shares['%Stake'] = treasury_shares['%Stake'].mul(100).round() # 2. 转为整数格式后拼接%符号 treasury_shares['%Stake'] = treasury_shares['%Stake'].astype(int).astype(str) + '%'
方法2:用lambda函数一次性处理
treasury_shares['%Stake'] = treasury_shares['%Stake'].apply(lambda x: f"{round(x*100)}%")
效果示例
- 原数值
0.328→ 乘以100得32.8→ 四舍五入为33→ 转为"33%" - 原数值
0.322→ 乘以100得32.2→ 四舍五入为32→ 转为"32%"
内容的提问来源于stack exchange,提问作者Pratik Pathare
相关产品推荐
相关产品推荐

