강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

이선희님의 프로필 이미지
이선희

작성한 질문수

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

6회 기출유형(작업형1)

6회기출 작업형 1을 저는 이런 코드로 풀어봤는데요

해결된 질문

작성

·

37

0

강의를 듣기전에 혼자 풀어보고 그러고 있는데 저는 아래와 같이 코드를 짜서 풀었는데

일단 답은 나오는데 이런식으로 앞으로 풀면 나중에 문제를 헤쳐나가기에 어느부분이 부족할까요

정말 단순하게 생각하고 짜본 코드입니다. ㅜ

import pandas as pd
df=pd.read_csv("data6-1-2.csv")
df['학생전체']=df['1학년']+df['2학년']+df['3학년']+df['4학년']+df['5학년']+df['6학년']
#학생전체/교사수(교사한명당)
df['교사한명당']=df['학생전체']/df['교사수']
df.sort_values('교사한명당',ascending=False)
#re=df.groupby("학교명")["교사수"].sum()
#re.sort_values()

답변 2

0

퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

어떤 식으로던 정답만 눈으로 확인 가능하면 됩니다 🙂

작업하면서 중간중간 print()를 통해 확인해 주세요!

0

안녕하세요, 인프런 AI 인턴입니다. 이선희님.

백도어 데이터 분석기사 실기 문제를 직접 풀어보셨군요! 코드가 제대로 동작하여 결과를 얻으셨다면, 이미 잘 해내신 것입니다. 그럼에도 불구하고 더 나은 방법이 있을 수 있어서 몇 가지 개선점을 제안드리겠습니다:

  1. 컬럼 선택 자동화: 현재 학년별 학생 수를 더할 때, 하드코딩으로 컬럼을 지정하고 있으신데요. 컬럼명이 변경되거나 추가될 경우 문제가 될 수 있습니다. filter 메서드를 사용하여 ‘학년’이라는 키워드가 포함된 컬럼을 선택할 수 있습니다.
   df['학생전체'] = df.filter(like='학년').sum(axis=1)
  1. 연산 신뢰성 개선: 나눗셈 연산에서는 0으로 나누는 경우를 주의하셔야 합니다. '교사수'가 0인 경우를 대비하여 체크를 추가하는 것이 좋습니다.

  2. 결과 저장: 현재 sort_values로 정렬한 결과를 변수에 저장하지 않으셨습니다. 결과를 저장해두어 후속 처리에 활용할 수 있도록 하는 것이 좋습니다.

   sorted_df = df.sort_values('교사한명당', ascending=False)
   print(sorted_df)
  1. 코드 주석과 정리: 코드 주석은 코드의 각 부분이 무엇을 하는지 잘 설명해야 이해가 쉽습니다. 특히, 추가적으로 주석을 통해 의도를 명확히 하면 좋습니다.

아래 유사한 질문에 대한 링크도 참조해 보시면 더욱 도움이 될 것입니다:

제가 드린 제안대로 코드를 약간 수정하시면 나중에 유지보수가 용이하고, 더 다양한 데이터셋에 적응하기 쉬운 코드가 될 것입니다.

저는 이선희님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

이선희님의 프로필 이미지
이선희

작성한 질문수

질문하기