키를 기반으로 데이터 행을 그룹화하고 해당 그룹의 행 중 하나라도 상태 필드에 "R"이있는 경우 모두 해당 필드가 "R ".그룹 내의 요소 변경
from operator import itemgetter
from itertools import groupby
headers = data.pop(0)
Col = {headers[i].strip().upper():i for i in range(len(headers))}
data = sorted(data, key=itemgetter(Col["KEY_FIELD"]))
for key,group in groupby(data, lambda x: x[Col["KEY_FIELD"]]):
for item in group:
if any([item[Col["STATUS"]]=="R" for item in group]):
item[Col["STATUS"]] = "R"
그러나이 데이터에서 아무것도 변경하지 않는 것 :
는 여기에 내가 해봤 코드입니다. 이 기준에 따라 각 그룹에 대해 원래 데이터 변수를 변경하는 비장의 방법이 있습니까? 아니면 각 그룹을 반복 한 후에 새 목록을 만들고 데이터를 복사해야합니까?
는'=='대입 연산자 – ElmoVanKielmo
감사되지 않습니다 : 당신은 단지
status_r
조건이 충족 된 경우 그렇게해야하는 경우 다시 그룹을 통해 루프에서 약간의 포인트가있다. 수정으로 문제를 해결했습니다. 코드는 여전히 데이터를 변경하지 않습니다. – CCKx