대용량 데이터 파일을 약간 편집하고 있습니다. 나는 어떤 컬럼 (이 경우 컬럼 8)의 값이 여러 라인에서 같은 값을 가지는지 확인하고, 만약 그것이 "multiplicity"변수와 같은 양의 라인에 도달하면, 나는 그 라인들을 새로운 라인에 저장하고있다. 정렬. 그러나이 금액에 도달하지 않은 경우 도달 한 행 수 (예 : 내 "개수"변수)에 대해 확인 된 행에 대해 다른 열 (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 부분까지 작동합니다. 나는 프로그래밍에 대한 많은 경험이 없기 때문에 몇 가지 힌트를 좋아할 것입니다!
아, 이제이 경우 'for'는 for 루프를 시작합니다. 어떤 이유로 나는 값을 대체하는 데 사용될 수 있다고 생각했다. (match_rows ... line 5의 "i"줄에있는 값을위한 "count"와 같이). 당신의 대답을 염두에두고 다른 접근법을 시도해보십시오! –