我一直在为我的博士研究构建分析工作流,并使用三重嵌套列表来表示我的数据结构,因为我希望它能够扩展到第二和第三级的任意数量的数据。第一级是整个数据集,第二级是数据集中的每个受试者,第三级是每个受试者的每个测量结果的一行。
[dataset]
|
[subject]
|
[measure1, measure2, measure3]
我正在尝试为每个指标映射一个函数 - 例如将所有点转换为浮点数或用None替换异常值 - 并希望根据它的嵌套返回整个数据集,但我的当前代码:
for subject in dataset:
for measure in subject:
map(float, measure)
......结果是正确的,正是我想要的,但问题在于我不知道如何高效地将结果分配回数据集中,或者不会失去嵌套级别。理想情况下,我希望它可以 * 原地 更改测量值,但我不知道怎么做。
您能否建议一种高效和pythonic的方法来解决这个问题?三重嵌套列表是程序中组织数据的愚蠢方式吗?
from itertools import repeat; dataset = map(map, repeat(map), map(repeat, repeat(float)), dataset)
- agffrom itertools import repeat, imap; dataset = map(list, imap(imap, repeat(map), repeat(repeat(float)), dataset))
。 - agf