【问题标题】:How do I fix TypeError in Python我如何修复 Python 中的 TypeError
【发布时间】:2023-01-27 20:00:37
【问题描述】:

这是代码

data.loc[(data['Account'] == Value) & (data['Contract End Month'] >= 7),
             'End Fiscal Year'] = data['Contract End Year'] + 1

它显示以下错误

TypeError: can only concatenate str (not "int") to str

这是代码

data.loc[(data['Account'] == Value) & (data['Contract End Month'] >= 7),
             'End Fiscal Year'] = data['Contract End Year'] + 1

它显示以下错误

TypeError: can only concatenate str (not "int") to str

【问题讨论】:

  • 您的连接之一连接了一个 int 和一个字符串,我猜这就是 data['Contract End Year'] + 1,以修复此用法:data['Contract End Year'] + str(1) 但这可能不是您在这里想要实现的目标......无论如何知道您可以那样转换
  • data['Contract End Year'] 可能是错误的类型,将data.show()添加到您的帖子

标签: python


【解决方案1】:

看起来你的 data['Contract End Year'] 是一个 str 实例,在执行添加之前尝试将它转换为 int

data.loc[(data['Account'] == Value) & (data['Contract End Month'] >= 7),'End Fiscal Year'] = int(data['Contract End Year']) + 1

【讨论】:

    【解决方案2】:

    错误消息表明您正在尝试将字符串与整数连接起来。 “Contract End Year”列似乎是字符串类型,但您试图将 1 添加到它,就好像它是一个整数一样。 您可以使用 pandas.to_numeric 方法将其转换为 int,然后加 1,稍后您可以将其转换回 str

    data['Contract End Year'] = pd.to_numeric(data['Contract End Year'], errors='coerce')
    data.loc[(data['Account'] == Value) & (data['Contract End Month'] >= 7),
                 'End Fiscal Year'] = data['Contract End Year'] + 1
    data['End Fiscal Year'] = data['End Fiscal Year'].astype(str)
    

    这应该修复 TypeError 并允许您对“合同结束年份”列执行算术运算。

    【讨论】:

      【解决方案3】:

      解决方案:

      data.loc[(data['Account'] == Value) & (data['Contract End Month'] >= 7),
                   'End Fiscal Year'] = data['Contract End Year'].astype(str) + 1
      
      

      【讨论】:

      • 我想我宁愿把它转换成int
      猜你喜欢
      • 2019-12-12
      • 1970-01-01
      • 1970-01-01
      • 2019-10-23
      • 2019-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-03
      相关资源
      最近更新 更多