更改列表中特定列中的值
Changing values in a specific column in a list
我有一个大数据文件,我想稍微编辑一下。我正在检查某一列(在本例中为第 8 列)中的值在多行中是否具有相同的值,如果它达到与我的 "multiplicity" 变量相同的行数,我将这些行保存到一个新数组。但是,如果未达到此数量,我想将检查的行的另一列(第 5 列)中的值更改为已达到的行数(即我的 "count" 变量)。这是我的代码不起作用的地方。
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 部分,这只是 returns 一个无效语法错误。我没有太多编程经验,所以希望得到一些提示!
else count for matching_rows[i][5] in matching_rows:
在Python中没有意义。首先,else 后面需要冒号:
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:
这似乎已经完成了!
if count ==multiplicity:
complete_systems.append(matching_rows[i])
else:
matching_rows[i][5]=count
complete_systems.append(matching_rows[i])
我有一个大数据文件,我想稍微编辑一下。我正在检查某一列(在本例中为第 8 列)中的值在多行中是否具有相同的值,如果它达到与我的 "multiplicity" 变量相同的行数,我将这些行保存到一个新数组。但是,如果未达到此数量,我想将检查的行的另一列(第 5 列)中的值更改为已达到的行数(即我的 "count" 变量)。这是我的代码不起作用的地方。
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 部分,这只是 returns 一个无效语法错误。我没有太多编程经验,所以希望得到一些提示!
else count for matching_rows[i][5] in matching_rows:
在Python中没有意义。首先,else 后面需要冒号:
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:
这似乎已经完成了!
if count ==multiplicity:
complete_systems.append(matching_rows[i])
else:
matching_rows[i][5]=count
complete_systems.append(matching_rows[i])