如何将实时预测结果保存到csv文件中?

时间:2020-08-07 19:00:33

标签: python

我正在一个音频分类器项目上,当前,当我实时运行预测器时,它会捕获一小段音频,然后启动预测过程,然后通过终端将结果撒出来,如下所示:

[INFO] 2020-08-07 14:49:20,695: Predictions: Dog: 1.00
[INFO] 2020-08-07 14:49:20,698: Stop processing.
[INFO] 2020-08-07 14:49:21,707: Start processing.
[INFO] 2020-08-07 14:49:21,847: Predictions: Cat: 0.98
[INFO] 2020-08-07 14:49:21,849: Stop processing.

所以,我想要将这些结果保存到CSV文件中。

我到目前为止所做的事情:

这是我的剧本:

def _process_loop(自己):

with WavProcessor() as proc:
    self._ask_data.set()
    while True:
        if self._process_buf is None:

            time.sleep(self._processor_sleep_time)                                          #Waiting for data to process
            continue

        logger.info('Start processing.')
        predictions = proc.get_predictions(

            self._sample_rate, self._process_buf)
        logger.info(

            'Predictions: {}'.format(format_predictions(predictions))
        )

        prediction = pd.DataFrame(predictions, columns=['Predicted Class', 'Accuracy']).to_csv('predictions.csv')


        logger.info('Stop processing.')
        self._process_buf = None
        self._ask_data.set()
    

我已在上面的代码中将此行添加到我的代码(prediction = pd.DataFrame(predictions, columns=['Predicted Class', 'Accuracy']).to_csv('predictions.csv'))中,并开始在此处获取内容。我得到的只是在csv文件中保存的一个结果。具体来说,它仅保存最后检测到的结果。

Predicted Class          Accuracy
Cat                      0.98

所以,我目前的问题是如何将所有预测结果保存到CSV文件中。

如果有人能帮助我解决此问题,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

您将在每次迭代中重写文件。 您可以指定熊猫mode函数的写to_csv。如果将其设置为a,则可以附加到现有文件。

类似这样的东西:

pd.DataFrame(predictions, columns=['Predicted Class', 'Accuracy']).to_csv('predictions.csv', mode='a', header=False)

一些不错的参考文献:

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_csv.html

https://tutorial.eyehunts.com/python/python-file-modes-open-write-append-r-r-w-w-x-etc/