2
더 나은 문제를 설명하기 위해 팬더 라이브러리를 사용하여 몇 가지 특성을 설명 하겠지만 제목에 명시된 것처럼 질문의 핵심 아이디어는 매우 일반적이라고 생각합니다. .imbrication 수준의 arbritrary 번호를 코딩하는 더 우아한 방법
일반적 질문 : 무수한 수의 루프 임베딩을 코딩하는보다 세련된 방법은 무엇입니까?
구체적인 예 : 팬더 DataFrame 객체 인 및 listLevels이 hierachically 조직 기능 (의 이름 목록 인 DF와 함수 doStruf (DF, listLevels)을 예를 들면, 사람, 교실, 학교, ..., 상태들)을 나타낸다. doStruf를 들어 (DF, [ "사람", "클래스", ..., "상태"]) 내가 만들 수있는 doStruf 기능을 원하는
for person in unique(array(df["person"])):
personData = df[df["person"] == person]
for classroom in unique(array(personData["classrooms"])) :
classroomData = personData[personData["classroom"] == classroom]
... arbritrary number of loops imbrication depending on len(listLevels) ...
varYData = varXData[varXData["varY"] == varY]
for state in unique(array(varYData["states"])) :
stateData = varYData[varYData["state"] == state]
... do stuff using stateData ...
같은 무엇을 처리 할 수있는 청소기 방법입니다 이런 종류의 런타임 정의 된 루프 imbrications?
@Andy 헤이든이 편집되었습니다. –
생각해 보면 재귀가 가장 좋은 방법 일 것 같아요. (다른 사람이 더 좋은 제안을하지 않는다면 코드를 제공 할 것입니다.)하지만 어떤 제안도 매우 감사 할 것입니다. –
groupby가 작동하지 않습니까? –