【问题标题】:Python - Loop through each row of multiple dataframes in a listPython - 遍历列表中多个数据帧的每一行
【发布时间】:2018-07-20 18:55:20
【问题描述】:

我正在尝试导出我错误分类的每条推文。

我正在使用以下代码(在线获取并调整),它使用混淆矩阵来确定我被错误分类的推文:

misclassified_svm = []
misclassified_svm_details = []

for predicted in event_id_df.event_id:
    for actual in event_id_df.event_id:
        if predicted != actual and conf_mat_svm[actual, predicted] >= 3:
            misclassified_svm.append("'{}' predicted as '{}' : {} examples.".format(id_to_event[actual], id_to_event[predicted], 
                  conf_mat_svm[actual,predicted]))
            misclassified_svm_details.append(testing_data_svm.loc[testing_data_svm.index[(testing_data_svm.actual_event_id == actual)& (testing_data_svm.predicted_event_id == predicted)]][['actual_event_type', 'preprocessed']])

这会在列表 misclassified_svm 中填充错误分类的概览。这可以在下面看到:

目的是用每条错误分类的推文填充列表misclassified_svm_details,这样我就可以理解导致错误分类的特征。相反,它会创建一个数据框列表。这可以在下面看到:

我希望最终结果是一个可以导出的变量,它包含列表 miclassified_svm_details 中每个数据帧的每一行。

需要明确的是,我将使用不同的数据集运行此代码,因此我需要建议的解决方案灵活并适应列表中不同数量的数据帧和每个数据帧中不同数量的条目。

为了完整起见,这是我失败的尝试:

misclassified_svm_det_2 = []

for a in misclassified_svm_details:
   for b in range(len(misclassified_svm_details)):
        misclassified_svm_det_2.append(b)

这只是创建一个包含 36 个条目的列表,在 0-5 之间循环六次。

【问题讨论】:

  • 您能否创建一个可重现的最小示例来显示输入和预期输出?

标签: python list for-loop dataframe


【解决方案1】:

您可以从一开始就将 misclassigied_svm_details 设置为 DataFrame 并将您生成的每个数据集附加到列表中,而不是将 Dataframes 附加到列表中。

所以你的代码会这样写:

misclassified_svm = []
misclassified_svm_details = pd.DataFrame(columns=['actual_event_type', 'preprocessed'])

for predicted in event_id_df.event_id:
    for actual in event_id_df.event_id:
        if predicted != actual and conf_mat_svm[actual, predicted] >= 3:
            misclassified_svm.append("'{}' predicted as '{}' : {} examples.".format(id_to_event[actual], id_to_event[predicted], 
                  conf_mat_svm[actual,predicted]))
            misclassified_svm_details.append(testing_data_svm.loc[testing_data_svm.index[(testing_data_svm.actual_event_id == actual)& (testing_data_svm.predicted_event_id == predicted)]][['actual_event_type', 'preprocessed']])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-19
    • 1970-01-01
    • 2021-02-16
    • 1970-01-01
    • 2020-09-11
    • 2019-08-24
    • 1970-01-01
    相关资源
    最近更新 更多