繁体   English   中英

根据位于同一字典中不同嵌套列表中的值删除嵌套在字典中的列表的条目

[英]Delete entries of a list nested in a dictionary depending on values located in a different nested list in the same dictionary

我正在编写一个脚本来读取多个 CSV 文件中包含的大量数据。 当我从每个 CSV 读取数据时,我把它放在一个存储在字典中的列表中,所以最终的数据结构是:

data_set = {user1 : {filenames: [file1,file2...]
                     labels: [file1label_1,file1label_2,file1label_3,file2label_1...]
                     features: [file1feat_1,file1feat_2,file1feat_3,file2feat_1...]
                     file_timepoints: [file1time_1,file1time_2,file1time_3,file2time_1,...]
                     }
            user2 : {filenames: [file1,file2...]
                     labels: [file1label_1,file1label_2,file1label_3,file2label_1...]
                     features: [file1feat_1,file1feat_2,file1feat_3,file2feat_1...]
                     file_timepoints: [file1time_1,file1time_2,file1time_3,file2time_1,...]
                     } 
            }

现在 filenames 变量是一个包含 200 个文件的列表,因此长度为 200,但字典中的所有其他变量都是长度为 7000 的列表,因为它们包含来自每个文件的每个时间步长的数据。

我想知道,从字典中的所有列表中删除与特定文件对应的数据的有效方法是什么? 因此,例如,如果我想删除 user1 的 file1 数据,则生成的字典将如下所示:

data_set = {user1 : {filenames: [file2...]
                         labels: [file2label_1...]
                         features: [file2feat_1...]
                         file_timepoints: [file2time_1,...]
                         }
                user2 : {filenames: [file1,file2...]
                         labels: [file1label_1,file1label_2,file1label_3,file2label_1...]
                         features: [file1feat_1,file1feat_2,file1feat_3,file2feat_1...]
                         file_timepoints: [file1time_1,file1time_2,file1time_3,file2time_1,...]
                         } 
                }

到目前为止,我已经尝试过使用嵌套的 for 循环,但它变得非常混乱并且效率非常低。 任何建议将不胜感激!

编辑:

在此处输入图像描述

这是数据外观的示例。 标签来自 CSV,它只有 1 个 1xNtimesteps 行的数据,特征数据来自 CSV,也就是 NfeaturesxNtimesteps,时间点来自 CSV,也就是 1 个 1xNtimesteps 行。

在做了一些研究之后,我认为解决这个问题的最佳方法是使用面向对象的概念,即使用带有类的工厂设计模式和带有文件和变量的 inheritance 层次结构。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM