【问题标题】:TypeError: "unsupported operand type(s) for -: 'Timestamp' and 'str'" pandasTypeError:“不支持的操作数类型 -:'Timestamp' 和 'str'”熊猫
【发布时间】:2017-08-24 16:24:16
【问题描述】:

我正在做一个项目,到目前为止我的代码如下所示:

def vacation_date(row):
if pd.isnull(row['vacation_date']) == False :
    return float((row['vacation_date'] - row['purchased_trip_date']).days)
else:
    pass 
preprocessed_data['vacation_date'] = data.apply(lambda row:
vacation_date(row), axis=1)

它正在返回:TypeError: ("unsupported operand type(s) for -: 'Timestamp' and 'str'", 'occured at index 3')

我不确定我需要做些什么来解决这个问题,任何建议都非常感谢,谢谢!

【问题讨论】:

  • 这里的row 是什么?字典?
  • row 将成为熊猫系列,我相信。它来自 data.apply() 调用
  • else: pass 到底是为了什么?这完全是多余的!

标签: python pandas typeerror


【解决方案1】:

错误消息是我在计算中见过的最清晰的消息之一 - 它告诉您您正在尝试从时间戳中减去一个字符串。由于您要减去的是row['purchased_trip_date'],这意味着这是一个字符串。首先将其转换为另一个Timestamp

【讨论】:

    【解决方案2】:

    您如何确定data['purchased_trip_date']data['vacation_date'] 中的每个项目都是正确格式的日期?我怀疑其中一个是不能自动转换为日期的字符串。当 Python 尝试从字符串中减去时间戳时会发生错误。您应该验证这两个字段中的数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-20
      • 2018-12-06
      • 1970-01-01
      • 1970-01-01
      • 2021-01-03
      • 2018-04-22
      • 1970-01-01
      相关资源
      最近更新 更多