인프런 커뮤니티 질문&답변
6회 기출유형 작업형1 마지막문제
해결된 질문
작성
·
28
0
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요
먼저 유사한 질문이 있었는지 검색해보세요
마지막 범죄 건수 계산문제 질문드립니다.
수업 자료에 있는 코드와 아래 작성된 코드에서 어떤 차이가 있어서 결과가 다르게 나오는 것인지 문의드립니다.
df['연도'] = df['날짜'].str[:4]
df['월'] = df['날짜'].str[6:8]
df['총합'] = df['강력범죄'] + df['절도범죄'] +df['폭력범죄'] +df['지능범죄'] +df['풍속범죄'] +df['교통범죄']
#월평균값이 가장 큰 연도 찾기
result = df.groupby(['연도','월'])['총합'].sum()
result.head()
#연도별로 총 범죄 건수(범죄유형의 총합)의 월평균 값을 구한 후 그 값이 가장 큰 연도를 찾아, 해당 연도의 총 범죄 건수의 월평균 값을 출력하시오.
result2 = result.groupby('연도').mean()
result2 = result2.sort_values(ascending = False)
result2
#23년도
print(df.groupby('연도')['총합'].mean())답변 2
0
평균을 구할 때 분모차이 때문입니다.
저는 12로 나눴고
mean()은 없는 달이 있으면 10 또는 9로 나눠질 수 있기 때문이에요
작성해주신 코드 mean()으로 계산하는 것이 맞습니다.
문제에서 "연간 총량은 12로 나누어라" 라는 말이 없으면 아마 mean()이 정답이거나 더 수용한다면 둘 다 정답이 되지 않을까 싶어요
실제 기출에서는 빈 월이 없어 mean()과 /12 가 모두 같았습니다.
0
안녕하세요, 인프런 AI 인턴입니다.
박선미님께서 남기신 범죄 건수 계산문제 관련 질문에 대해 답변드리겠습니다. 주어진 코드에서 연도별로 범죄 건수의 월평균을 구하는 부분에서 혼동이 있을 수 있습니다. 주어진 코드를 바탕으로 문제 상황과 해결 방안을 정리해 보았습니다.
문제 요약
해당 코드는 데이터를 연도와 월로 그룹화하여 범죄 건수를 계산하고, 연도별로 총 범죄 건수의 월평균 값을 계산하여 가장 큰 값을 찾고자 합니다. 결과적으로 올바른 연도의 월평균 범죄 건수를 찾으려는 목적인데, 결과가 다르게 나오는 이유는 아마도 데이터의 그룹화 및 평균 산출 방식에서 차이가 발생했기 때문일 것입니다.
해결 방안
데이터 그룹화:
result = df.groupby(['연도','월'])['총합'].sum()을 통해 각 연도 및 월별로 총 범죄 건수를 계산합니다.
- 이후
result2 = result.groupby('연도').mean()을 통해 연도별 월평균을 구합니다.
정렬 및 로직 확인:
result2.sort_values(ascending = False)는 연도별 월평균을 내림차순으로 정렬하여 가장 큰 값을 찾기 위한 수단입니다.
df.groupby('연도')['총합'].mean()은 실제 연도별 총 범죄 건수 평균을 계산합니다.
이 과정에서, 누락된 데이터 처리나 데이터프레임 인덱스 정렬에서 혼동이 있을 수 있으므로 확인이 필요합니다. 각 그룹별 데이터를 실제 존재하는 월의 수와 맞춰 계산해야 하는 점을 주의해야 합니다.
유사 질문 참고
비슷한 문제를 해결한 사례로 다음의 답변 링크를 참고하시면 도움이 될 것입니다:
- 기출6 유형1 문의드립니다.: 그룹화된 데이터의 월평균 계산 시 발생할 수 있는 오류와 이를 해결하기 위한 transform() 메소드 사용 방법을 설명하고 있습니다.
저는 박선미님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





