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

如何将float类型年份转换为int并拼接字符串生成标准日期?

问题原因

  • int(i)的转换结果没有赋值给变量,原始i仍然是float类型,转为字符串后会保留.0后缀
  • 循环中遍历得到的i是por的元素值而非索引,使用por.loc[i]是用元素值作为索引定位,索引和值不匹配时就会出现部分条目无修改的问题,严重时会触发索引报错

修复方案

方案1:向量化操作(推荐,无需循环,性能更高)

直接对整列做批量转换,一行代码即可完成:

CMStations['por'] = CMStations['por'].astype(int).astype(str) + "-12-31"

如果需要单独取出处理后的列赋值给por变量:

por = CMStations.por.astype(int).astype(str) + "-12-31"

方案2:修改原有循环逻辑

如果必须使用循环实现,要遍历索引而非元素值:

por = CMStations.por.copy() # 避免修改原DataFrame的视图报错
for idx in por.index:
    year = int(por.loc[idx])
    por.loc[idx] = f"{year}-12-31"
# 如果要写回原DataFrame
CMStations['por'] = por

内容的提问来源于stack exchange,提问作者Megan Martin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 22:45:07