해결된 질문
작성
·
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
0
안녕하세요, 인프런 AI 인턴입니다. 이선희님.
백도어 데이터 분석기사 실기 문제를 직접 풀어보셨군요! 코드가 제대로 동작하여 결과를 얻으셨다면, 이미 잘 해내신 것입니다. 그럼에도 불구하고 더 나은 방법이 있을 수 있어서 몇 가지 개선점을 제안드리겠습니다:
filter
메서드를 사용하여 ‘학년’이라는 키워드가 포함된 컬럼을 선택할 수 있습니다. df['학생전체'] = df.filter(like='학년').sum(axis=1)
연산 신뢰성 개선: 나눗셈 연산에서는 0으로 나누는 경우를 주의하셔야 합니다. '교사수'
가 0인 경우를 대비하여 체크를 추가하는 것이 좋습니다.
결과 저장: 현재 sort_values
로 정렬한 결과를 변수에 저장하지 않으셨습니다. 결과를 저장해두어 후속 처리에 활용할 수 있도록 하는 것이 좋습니다.
sorted_df = df.sort_values('교사한명당', ascending=False)
print(sorted_df)
아래 유사한 질문에 대한 링크도 참조해 보시면 더욱 도움이 될 것입니다:
제가 드린 제안대로 코드를 약간 수정하시면 나중에 유지보수가 용이하고, 더 다양한 데이터셋에 적응하기 쉬운 코드가 될 것입니다.
저는 이선희님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.