인프런 커뮤니티 질문&답변
코드(3-7. 계층적 데이터 분석) 중에 질문이 있습니다.
해결된 질문
작성
·
34
0
안녕하세요!
코드 중에서 이해 안가는 부분이 있어 질문드립니다.
fig = px.sunburst(df, path=["Pclass", "Sex", "SurvivalStatus"],
values="PassengerId", # 각 조각의 크기를 승객 수로 설정
title="Hierachical View of Survival by Class and Sex",
color="Survived", color_discrete_map={1:'gold', 0:'darkblue'})
fig.show()여기에서
values="PassengerId", # 각 조각의 크기를 승객 수로 설정이라고 하셨는데 PassengerId는 단순 인덱스 개념이 아닌가요? 왜 사람 수를 의미하게 되는지 이해가 잘 가지 않습니다.
답변 2
0
안녕하세요. 답변이 늦어서 죄송합니다!
질문하신 대로PassengerId는 각 승객을 식별하기 위한 고유한 일련번호(인덱스)일 뿐, 그 수치 자체가 어떤 양적 의미(무게, 가격 등)를 갖지는 않습니다. 저도 다시 코드를 읽어보니 px.sunburst 함수에서 values="PassengerId"라고 설정한 것은 수강생님께서 지적하신 것처럼 논리적으로 완벽한 설정은 아닙니다.
제가 그래프를 그리기 위해 사용한 Plotly의 sunburst 차트에서 values 파라미터는 지정된 컬럼의 값을 합산하여 차트 조각의 크기를 결정합니다.
만약 values="Fare"라고 했다면, 승객들이 낸 운임의 합계에 따라 조각 크기가 결정됩니다.
만약 values="PassengerId"라고 하면, 승객들의 ID 번호(1, 2, 3...)를 모두 더하게 됩니다. 예를 들어 ID 100번인 승객 한 명의 조각이 ID 1번인 승객 한 명보다 차트에서 훨씬 크게 표시되는 왜곡이 발생할 수 있습니다.
제가 강의를 제작했을 당시에 경우에는 데이터의 개수(Row Count)를 시각화하려는 의도였습니다만 수강생분께서 지적해주신 대로 '개수'를 정확히 표현하는 방법은 아닙니다.
따라서, 코드를 수정해본다면
df['Count'] = 1
fig = px.sunburst(df, path=["Pclass", "Sex", "SurvivalStatus"], values="Count", ...)이렇게 하면 각 승객(행)이 동일하게 '1'이라는 값을 갖게 되므로, 합산 결과가 곧 해당 그룹의 승객 수가 되어 조각 크기가 정확해집니다.
지적해주셔서 정말로 감사드립니다. 학습하시다가 또 이상하거나 궁금한 부분 보이면 언제든 편하게 말씀해주세요. 감사합니다!
0
안녕하세요, 인프런 AI 인턴입니다.
outofmtx님, 질문해주신 부분에 대해 설명드리겠습니다.
PassengerId는 데이터셋에서 승객마다 고유하게 할당된 ID로 보통 인덱스의 역할을 수행합니다. 그러나 이 경우 plotly.express.sunburst 함수의 values 매개변수에 PassengerId를 사용했기 때문에 이는 시각화할 때 각 조각의 크기를 결정하는 데 사용됩니다. PassengerId를 각 승객마다 하나씩 갖고 있다는 점을 이용하여 승객 수를 나타내는 매개변수로 쓸 수 있는 것입니다.
만약 PassengerId 대신 다른 데이터를 사용하고 싶다면, 별도로 그룹화하거나 필요한 데이터 전처리를 통해 승객 수를 나타내는 값으로 바꿔줄 수 있습니다.
도움이 되었길 바랍니다! 추가 질문이 있으시면 언제든지 물어보세요.




