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

如何将Pandas DataFrame中"XX years XX months"格式的object列转为浮点值?

解决Pandas中"XX years XX months"格式列转浮点类型的问题

直接用astype('float')报错是因为该列是包含文字的字符串,Pandas无法直接将非纯数字的字符串转换为浮点数。需要先提取字符串中的年、月数值,再计算为统一的浮点值,步骤如下:

  • 提取年和月的数字:使用正则表达式从字符串中分离出年、月的数值,生成临时列

    df_Jan[['years', 'months']] = df_Jan['remaining_lease'].str.extract(r'(\d+) years (\d+) months', expand=True)
    
  • 转换临时列为数值类型:将提取出的字符串数字转为浮点型

    df_Jan['years'] = df_Jan['years'].astype(float)
    df_Jan['months'] = df_Jan['months'].astype(float)
    
  • 计算浮点型的剩余租期:根据需求选择以年或月为单位计算

    • 以年为单位:
      df_Jan['remaining_lease_float'] = df_Jan['years'] + df_Jan['months'] / 12
      
    • 以月为单位:
      df_Jan['remaining_lease_float'] = df_Jan['years'] * 12 + df_Jan['months']
      
  • 可选清理:如果不需要临时的years和months列,可删除

    df_Jan = df_Jan.drop(['years', 'months'], axis=1)
    

内容的提问来源于stack exchange,提问作者Nathan Leow

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 13:54:20