如何用Pandas和NumPy填充“'Series'对象是可变的,因此它们不能散列”

2024-10-02 02:38:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下代码,其中我使用CSV文件来创建一个“数据帧”(AttributeValue)和一个“系列”(attributeClassValues)

dataSegmentToProcess = pd.read_csv('myCSV', nrows=2000, header=None)

attributeValues = dataSegmentToProcess[dataSegmentToProcess.columns[:-1]]
attributeClassValues = dataSegmentToProcess[dataSegmentToProcess.columns[-1]]

然后,在for循环中,我在下面得到了错误“Series对象是可变的,因此在代码的最后一行中无法对它们进行哈希处理:

   means = np.zeros([numberOfUniqueClasses, dimension])
   for i in range(numberOfUniqueClasses):
     idx = (attributeClassValues == uniqueClasses[i])
     means[i, :] = np.mean(attributeValues[idx, :], axis=0)

“NumberOfUniqueClass”和“dimension”是整数

attributeValues是一个数据帧,而不是一个系列对象,那么我怎么会得到这个错误呢

任何想法都欢迎

附言:我可以使用“read_csv”(没有熊猫)来完成我的工作,但出于明显的原因,我更喜欢使用熊猫


Tags: columnscsv数据对象代码forread错误

热门问题