인프런 커뮤니티 질문&답변
9회 작업형1 문제 이중포문으로 해결해도 되나요?
작성
·
18
·
수정됨
0
9회부터 작업형1이 갑자기 어려워진 것 같습니다. 기존에 알고 있던 걸로 풀리지 않아, 알고리즘 문제 풀듯이 2중포문을 사용해서 문제를 풀었습니다. 코랩에서는 바로 결과가 나오나, 구름에서 코드를 돌려보니 1분안에 결과가 안나오던데, 실제 시험장에서는 이렇게 문제를 풀어도 되는지 여쭤보고 싶습니다. 작업형1 2번 문제와 3번문제를 둘 다 이중포문으로 풀었습니다.
2번 코드
import pandas as pd
df = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/refs/heads/main/p4/9_1/crime.csv")
# print(df)
list(set(df['연도']))
# print(df.columns[2])
store = []
for i in range(0,len(df),2):
rate = 0;
name = ''
for j in range(2,16):
temp = df.iloc[i+1,j] / df.iloc[i,j]
if temp > rate:
rate = temp
name = df.columns[j]
store.append(name)
print(store)
cond_result = df['구분'] == '검거건수'
df_result = df[cond_result].reset_index(drop = True)
print(df_result)
sum = 0
for i in range(7):
sum = sum + df_result.loc[i,store[i]]
print(sum) #77993번 코드
import pandas as pd
df = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/refs/heads/main/p4/9_1/hr.csv")
print(df)
# print(df.shape)
# print(df.isnull().sum())
# print(df.head())
a = df['만족도'].mean()
# print(a)
df['만족도'] = df['만족도'].fillna(a)
df_group = df.groupby(['부서', '성과등급'])['근속연수'].mean().reset_index()
print(df_group)
cond1 = df['근속연수'].isnull()
df_null = df[cond1].drop(['사원번호', '연봉', '교육참가횟수', '만족도'], axis = 1).sort_values(['부서', '성과등급'])
print(df_null)
for i in range (len(df_null)):
for j in range (len(df_group)):
if (df_null.iloc[i,0] == df_group.iloc[j,0]) & (df_null.iloc[i,1] == df_group.iloc[j,1]):
df_null.iloc[i,2] = int(df_group.iloc[j,2])
break;
# df['근속연수']
print(df_null)
print(df)
df['근속연수'] = df['근속연수'].fillna(df_null['근속연수'])
df['연봉/근속연수'] = df['연봉'] / df['근속연수']
print(df.sort_values('연봉/근속연수',ascending = False)) #1
df['연봉/만족도'] = df['연봉'] / df['만족도']
print(df.sort_values('연봉/만족도',ascending = False)) #6
print(1+6)
답변 2
1
네 시험은 대부분 스몰데이터였어요
작업형2라면 1분 가까워지면 위험해요 시스템에서 다시 돌려서 생성된 csv로 채점하거든요
그런데 작업형1은 정답만 기입하면되고
1분 넘어가면 내 눈앞에서 멈추니 걱정하니 마세요!
헛 돌지 않도록 Break처리 하면 아무런 문제 없습니다
0
안녕하세요, 인프런 AI 인턴입니다. chomin0514님.
작업형 문제에서 이중 포문을 사용하는 것은 태스크의 장단에 따라 달라질 수 있습니다. 이중 포문은 데이터 양이 비교적 적을 경우, 또는 규칙이 명확할 때는 간단한 논리로 원하는 결과를 구현할 수 있는 좋은 방법이 될 수 있습니다. 하지만, 작업형 테스트에서 데이터가 커질 경우, 이중 포문은 성능에 영향을 미칠 수 있습니다. 실제 시험에서는 데이터 크기에 따라서 이중 포문의 사용이 제한된 시간 안에 결과를 반환할 수 없을 가능성이 존재하기 때문에 주의하셔야 합니다.
작업형 1번 문제:
- 이중 포문을 통해 각 열의 비율을 계산하고, 조건에 맞는 결과를 도출하였습니다.
- 로컬 환경에서는 충분히 작동하지만, 구름 IDE 등 환경이나 데이터양에 따라 실행 속도에 차이가 있을 수 있습니다.
- 이중 포문을 통해 각 열의 비율을 계산하고, 조건에 맞는 결과를 도출하였습니다.
작업형 3번 문제:
- 비어있는 ‘근속연수’ 값을 채우기 위해 그룹별 평균을 사용하고 있습니다.
- 중첩 반복문을 활용하여 ‘부서’와 ‘성과등급’에 따라 NAN 값을 채워주고 있습니다.
- 비어있는 ‘근속연수’ 값을 채우기 위해 그룹별 평균을 사용하고 있습니다.
시험 환경에서는 성능 최적화를 위해 pandas의 그룹 기능이나 벡터화된 연산을 사용하는 것이 선호될 수 있습니다. pandas의 apply, groupby, 또는 merge 함수를 활용하면 반복문을 사용하지 않더라도 비슷한 결과를 얻을 수 있습니다.
관련하여 더 나은 접근법과 방법론에 관해 기존에 질문된 사항이 있다면, 다음 게시물을 참고하실 수 있습니다:
- pandas 활용하여 데이터 연산 최적화하기:
- 이 포스트는 판다스를 활용해 효율적인 연산을 수행하는 방법을 설명합니다.
- 이 포스트는 판다스를 활용해 효율적인 연산을 수행하는 방법을 설명합니다.
작업형 문제는 종종 다양한 풀이 방법이 가능하며, 코드가 얼마나 효율적으로 실행되는지가 중요한 포인트가 될 수 있습니다. 코드를 최적화하여 실행 시간을 줄이는 연습을 지속해 보시길 권장드립니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.






넵 감사합니다!! 무한루프가 아니라면 시간초과가 날일은 없겠죠..? 구름에서는 저 코드가 1분안에 동작을 안해서 불안하네요 선생님 ㅠㅠ