无法从另一个数据帧覆盖dataframe列

问题描述 投票:0回答:1

我有一个RabbitMQ,我在那里间接收到一些数据,如下面所示的数据(每3行一行):

CPU, Memory, Disk 22, 30, 31 25, 33, 29 28, 33, 27 25, 32, 30 33, 32, 25

我有一个名为dataset的数据框,它有三列;即CPUMemoryDisk,我存储从RabbitMQ收到的数据。在将数据存储到数据帧之后,调用scikit-learn算法(DBSCAN)并创建数据集群。 DBSCAN将每个数据的集群存储在一个名为labels_的数组中。然后,我将labels_存储到名为labels_df的列中名为'Label'的新数据框中。

我想要的是在'Label'数据帧中创建一个名为dataset的新列,并将数据存储在Label数据帧的Label列的labels_df列中。

我的问题是这个self.dataset['Label'] = labels_df['Label']抛出这个错误:

ValueError: Input contains NaN, infinity or a value too large for dtype('float64')两个数据集的长度始终相同。

只有在使用RabbitMQ时才会出现上述错误。例如,如果a有一个csv文件并将其存储到数据框中然后创建这个额外的列,那么一切都没有问题。

python-3.x pandas rabbitmq
1个回答
0
投票

我刚刚找到了解决问题的方法。事实证明,我所要做的就是在一个名为labels的新数据帧中传递self.labels,并将其与self.dataset数据帧连接起来。这就是最终发生的事情:self.dataset: CPU Memory Disk 0 33 67 64 1 28 47 67 2 9 23 23 3 10 18 18 4 48 56 62 5 39 60 62

self.labels Labels 0 -1 1 -1 2 -1 3 -1 4 0 5 -1

最后的数据框是这一个:self.final_dataframe CPU Memory Disk Labels 0 33 67 64 -1 1 28 47 67 -1 2 9 23 23 -1 3 10 18 18 -1 4 48 56 62 0 5 39 60 62 -1

如果有人找到更好的解决方案,请帮忙!

© www.soinside.com 2019 - 2024. All rights reserved.