基于数据选项卡生成列组

2024-05-12 17:54:40 发布

您现在位置:Python中文网/ 问答频道 /正文

背景:

我一直在创建一个基于输入csv的脚本,它存在于一个输入目录中,创建一个三维数组来存储聚集的信息。数组中的每个表代表一个污染源(例如输入的csv之一焚烧炉.csv,创建的表格将是焚烧炉在流域尺度上释放的各种污染物的汇总信息),每行代表按流域的汇总信息-第0行=标题,每一列是每种物质的含量和毒性当量-col 0=流域ID

对于每个分水岭中的每种物质,计算所有来源释放的总量并将其存储在另一个具有完全相同布局的数组中,该数组通过索引或基于名称的字典查找使用totals[wsid][substance]寻址。在

问题:

有了这张总量表,我需要计算每个流域每种物质释放量与其他流域释放量的相对排名。在

我可以使用两个嵌套循环遍历每一个substance列并将其转换为一个列表,对列表进行排序,然后将其与分水岭ID关联起来。。。但这并不是一个非常干净的解决方案。排名中也需要省略零值,重复的值应该被赋予相同的排名,同时减少被排名的总数。在

有没有更聪明的方法?或者一个已经实现的模块?(在pyTables中没有看到任何明显的东西)

其中一个要求是,解决方案也要足够简单,以便那些比我更缺乏python经验的人至少能够理解这个过程。我最多可以使用2.7.1

最终目标:

从googleearth的描述气泡中生成HTML页面并显示结果。我已经把几个完全未完成的示例输出here。在


Tags: csv信息id列表代表数组解决方案汇总
1条回答
网友
1楼 · 发布于 2024-05-12 17:54:40

为此,我创建了2个函数

def sortTable(table, col):
    return sorted(table, key=itemgetter(col))

以及

^{pr2}$
  • fieldList=第一行字段列表
  • wsidList=wsid的列表(剩余595行)
  • subList=要排名的物质列表
  • subDict=将每个物质映射到totalTable中的col索引的字典
  • wsidDict=在totalTable中映射每个wsid及其行索引的字典

相关问题 更多 >