无法覆盖另一个数据框的数据框列

时间:2019-02-11 16:55:55

标签: python-3.x pandas rabbitmq

我有一个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列中{1}}数据框。

我的问题是此labels_df引发此错误:

self.dataset['Label'] = labels_df['Label'] 两个数据集的长度始终相同。

仅当我使用RabbitMQ时,才会出现上述错误。例如,如果一个具有ValueError: Input contains NaN, infinity or a value too large for dtype('float64')文件,并且我将其存储在数据框中,然后创建此额外的列,则一切工作都不会出现问题。

1 个答案:

答案 0 :(得分: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

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