1
따라서 고급 피벗 질문이 있습니다. 이 출력 제공DataFrame을 통해 여러 열 집합을 플래그가 지정된 값 집합으로 피벗하는 동안 모든 열을 피벗하지 않으려면 어떻게합니까?
dfa = pandas.DataFrame([["g1","15","Annie","Bard"], ["g2","18","Lux","Annie"], ["g3","15","Olaf","Twitch"]], columns=["gameId", "duration", "Champ1", "Champ2"])
다음 데이터 프레임 고려해, 다음과 같은 스택 오버플로 질문에 how to pivot complex dataframe을 논리를 적용하여
을, 나는
pandas.melt(dfa, id_vars=['gameId']) \
.set_index('gameId')['value'] \
.str.get_dummies() \
.groupby(level=0) \
.agg(np.sum)
수
그러나, 나는 시간 열을 선회하고 싶지 않아 그래서 난 내 코드를 변경하고 'value_vars'
pandas.melt(dfa, id_vars=['gameId'], value_vars = ['Champ1','Champ2']) \
.set_index('gameId')['value'] \
.str.get_dummies() \
.groupby(level=0) \
.agg(np.sum)
를 추가 그리고 지금은 시간 열을 잃게됩니다. 고유하지 않으므로이 열은 인덱스가 아니지만 피벗하지 않으려합니다. 나는 'id_vars'또는 'set_index()'에 addit의 모든 조합을 시도했지만 작동하지 않는 것 같습니다.
생각하십니까?
미리 감사드립니다. 다음과 같이
감사합니다,이 완벽합니다. 'gameId', 'duration'을 시도했지만 목록에없는 것도 아니고 그룹의 레벨도 가지고 있지 않았습니다. –
당신은 오신 것을 환영합니다. Btw, 항상 '0'이 필요한 경우 '1'출력에는 'sum'이 아니라 'max'가 필요합니다. – jezrael
그래서, 어떻게 지속 기간 = 15로 쿼리합니까? gameId = g1로 a.loc [: 'g1']을 사용하여 쿼리 할 수 있지만 a.loc [: 15] 또는 a.loc [: '15']이 작동하지 않는 것 같습니다. –