【问题标题】:TypeError: 'str' object does not support item assignment in dot product calculationTypeError:“str”对象不支持点积计算中的项目分配
【发布时间】:2022-01-22 11:50:11
【问题描述】:

我的数据框如下

    Tweet = data.columns.values[0]
    Rscore = data.columns.values[1]
    Nscore = data.columns.values[2]
    Label = data.columns.values[3]

每列的 Rscore 和 Nscore 值应由两个向量的点相似度驱动,如下所示

for value in range(0,len(dataVector)):
    vector = dataVector[value]
    score = numpy.dot(vector,flattenNRumor[:50])
    Nscore[value] = score

但我得到了

TypeError: 'str' object does not support item assignment

【问题讨论】:

  • 错误告诉您确切地是什么问题。 Idk 你认为应该发生什么,但Nscore 是一个字符串,基本上不管你的列轴的第三个标签是什么。然后你做Nscore[2],这是第二个索引位置的字符,你尝试将它设置为一个值,你不能这样做,因为这不是python的工作方式。

标签: python pandas numpy machine-learning dot-product


【解决方案1】:

注意代码的每一行都在做什么。您应该知道而不是猜测每个变量是什么。

假设dataDataFrame,那么data.columnsIndex 列,data.columns.values 是具有这些列names 的数组。 [2] 选择第三个名称

Nscore = data.columns.values[2]

Nscore 是一个字符串,一个列名。它不是一个列,一个pandas.Series,所以它不能被改变或取一个数值。

【讨论】:

  • 我没猜到,我正在练习一些代码并寻找一种处理 pandas 数据框中的 clolumns 的方法,这种方法应该为每个列命名,以便我们可以将其用作参考在代码的其他地方
  • 此方法为您提供列的名称,但这与列本身不同。试试data[Nscore][value] = score
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-16
  • 1970-01-01
  • 2016-10-27
  • 2013-12-22
  • 1970-01-01
相关资源
最近更新 更多