Python:CSV多列三元组组合下,对最小值行对应列求和
处理CSV无重复三元组的最小值累加问题
我最近在处理CSV数据时碰到了这么个需求:从导入的多列数据里生成无重复三元组做分析——像'abc'、'cba'这类只是排列顺序不同的组合算同一组,只保留一种就行。我的目标是把每列的值分别累加到对应的3个变量里,但有个关键规则:只有当该行中该列的值是这三列里的最小值时,才执行累加操作。
我先写了一段初步的代码片段,思路是通过控制range的起始值来生成不重复的三元组(让s1 < s2 < s3,这样就不会出现排列不同的重复组合),然后逐行判断最小值并执行累加:
for s1 in range(15, 134): for s2 in range(s1 + 1, 135): for s3 in range(s2 + 1, 136): for r in range(2, 27041): if data[r][s1] < data[r][s2] and data[r][s1] < data[r][s3]: s1M = s1M + float(data[r][s1]) s1C = s1C + float(data[r][12...
不过这段代码还没写完,比如data[r][12...这里应该是某个列索引的完整写法,后续还得补充s2和s3对应的判断与累加逻辑——比如当s2是三列中的最小值时,要把对应的值累加到s2M和s2C,同理处理s3的情况。
内容的提问来源于stack exchange,提问作者xn1
相关产品推荐
相关产品推荐

