我有一个大型数据文件,我想稍微编辑一下。我检查某列中的值(本例中第8列)是否在多行中具有相同的值,并且如果它与我的"多样性"达到相同的行数。变量I将这些行保存到新数组中。但是,如果未达到这个数量,我想将另一列(第5列)中的值更改为已检查的行数达到的行数(即我的"计数"变量)。这是我的代码不起作用的地方。
multiplicity=7
complete_systems=[]
for i in range(len(matching_rows)):
count = 0
value=matching_rows[i][8]
for j in range(len(matching_rows)):
if matching_rows[j][8]==value:
count+=1
if count ==multiplicity:
complete_systems.append(matching_rows[i])
else count for matching_rows[i][5] in matching_rows:
complete_systems.append(matching_rows[i])
其中matching_rows是我的数组。示例行:
[memmap(['K00806.02', '60.32494216', '12.19', '89.83', '0.2998', '5', '22',
'0.8670', '0.9860', '347.20'],
dtype='<U12'),
memmap(['K00806.01', '143.2063047', '8.9', '89.83', '0.5336', '5', '9',
'0.8670', '0.9860', '138.80'],
dtype='<U12'),
memmap(['K00232.05', '56.2590881', '2.22', '89.97', '0.287', '5', '22',
'1.1910', '0.9950', '29.70'],
dtype='<U12'),
因此代码一直运行到ELSE部分,它只返回一个无效的语法错误。我没有多少编程经验,所以会喜欢一些提示!
答案 0 :(得分:0)
else count for matching_rows[i][5] in matching_rows:
在Python中没有任何意义。首先,其他后需要冒号:
else:
你可能意味着
elif count for matching_rows[i][5] in matching_rows:
但
count for matching_rows[i][5] in matching_rows:
在Python中仍然没有任何意义。你可能想要
matching_rows[i][5] in matching_rows:
所以完整的陈述应该是
elif matching_rows[i][5] in matching_rows:
答案 1 :(得分:0)
这似乎完成了这项工作!
if count ==multiplicity:
complete_systems.append(matching_rows[i])
else:
matching_rows[i][5]=count
complete_systems.append(matching_rows[i])