You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中用//运算符生成DataFrame整数列却得到浮点数的问题

为什么DataFrame中用// 365.得到浮点数结果?

核心原因是你使用了**浮点数365.**作为除数,pandas的算术运算遵循"向上转型"规则:只要参与运算的操作数中有一个是浮点数类型,运算结果就会自动转为浮点数——哪怕你用的是整数除法//。

比如如果你的df['Days']是整数列,当它和365.(浮点数)执行//运算时,整个运算的结果类型会被提升为浮点数,所以最终得到13.0这类带小数位的格式。

解决办法

  • 直接将除数改为整数365,整数列与整数做整数除法,结果会是整数类型:
    df['Years'] = df['Days'] // 365
    
  • 若需要保留365.的写法,也可以用astype()强制转换结果类型:
    df['Years'] = (df['Days'] // 365.).astype(int)
    

内容的提问来源于stack exchange,提问作者Yorgin Pada

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 21:51:24