为啥我会收到“TypeError: unsupported operand type(s) for -: 'str' and 'str'”错误?

Posted

技术标签:

【中文标题】为啥我会收到“TypeError: unsupported operand type(s) for -: \'str\' and \'str\'”错误?【英文标题】:Why do I get "TypeError: unsupported operand type(s) for -: 'str' and 'str'" Error?为什么我会收到“TypeError: unsupported operand type(s) for -: 'str' and 'str'”错误? 【发布时间】:2021-12-25 16:45:59 【问题描述】:

这是我的数据框:

           Date        Open        High  ...       Close   Adj Close     Volume
0    11/12/2020  119.620003  120.529999  ...  119.209999  118.479599  103162300
1    11/13/2020  119.440002  119.669998  ...  119.260002  118.529289   81581900
2    11/16/2020  118.919998  120.989998  ...  120.300003  119.562920   91183000

..          ...         ...         ...  ...         ...         ...        ...

252  11/12/2021  148.429993  150.395004  ...  149.990005  149.990005   52814971

我正在尝试在上面运行这个简单的代码:

for i in range(1, dataset.shape[0]):
  dataset_new.loc[i-1 , :] =  dataset.loc[i , :] - dataset.loc[i-1 , :]

但我收到此错误消息:

TypeError: unsupported operand type(s) for -: 'str' and 'str'

我不知道为什么会发生这种情况,我该如何解决?

【问题讨论】:

Date 将是一个字符串,并且您正在减去所有列。 【参考方案1】:

您的日期列很可能是字符串类型。您需要确保所有列都是可减去的。dataset_new.dtypes 将为您打印列类型。

【讨论】:

以上是关于为啥我会收到“TypeError: unsupported operand type(s) for -: 'str' and 'str'”错误?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我会收到此错误

为啥我会收到这个 TypeError?

为啥我会收到序列化错误?

为啥我会收到错误消息?

知道为啥我会收到此错误吗?

为啥我会收到这种错误验证错误?