강의

멘토링

커뮤니티

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

이진형님의 프로필 이미지
이진형

작성한 질문수

[2025년 최신 기출 반영] 빅데이터 분석 기사 실기 시험 100% 합격 ! 기출 문제의 패턴이 보인다 !

6회 1유형 3번 문제

해결된 질문

작성

·

32

·

수정됨

0

아직 method 속 수많은 attribute들에 익숙해지지 않아서 쓰는 것만 쓸려다 보니

문제가 복잡해질수록 코드를 복잡하게 작성하게 되네요.

6회 1유형 3번 문제로 예를 들자면,

같은 경우도 lambda가 먼저 떠오르지 않고 str.split로 어떻게든 해보려하고..

axis 쓰신 부분이 이해가 가지않아 transform 쓰려다 포기하고..

결국 이렇게 풀었습니다.

df['yr']=df['날짜'].apply(lambda x : x[0:4])
df['mth']=df['날짜'].apply(lambda x : x[6:8])
df['sum']=df['전자제품']+df['가전제품']+df['의류']+df['잡화']

c2018 = (df['yr']== '2018')
d2018 = df[c2018]
g2018 = d2018['sum'].sum()
d2018['gsum'] = g2018

c2019 = (df['yr']== '2019')
d2019 = df[c2019]
g2019 = d2019['sum'].sum()
d2019['gsum'] = g2019

c2020 = (df['yr']== '2020')
d2020 = df[c2020]
g2020 = d2020['sum'].sum()
d2020['gsum'] = g2020

c2021 = (df['yr']== '2021')
d2021 = df[c2021]
g2021 = d2021['sum'].sum()
d2021['gsum'] = g2021

c2022 = (df['yr']== '2022')
d2022 = df[c2022]
g2022 = d2022['sum'].sum()
d2022['gsum'] = g2022

df = pd.concat([d2018, d2019, d2020, d2021, d2022]).reset_index()
df = df.sort_values('gsum', ascending=False).reset_index()
t2021= df.loc[0, 'gsum']
a2021= t2021/12
print(int(round(a2021,0)))

분명 더 쉽게 풀 수 있을 거 같은데

머리 속에는 테이블을 하나하나 분리해서 다시 조각조각 붙일 생각만 드네요.

 

혹시 이 문제 str.split 혹은 transform 써서 풀어주실 수 있으신가요?

강의 영상에는 대부분 가장 명료한 가지 방법으로만 풀어주시는데

몇몇 방법들은 교재와 chatgpt를 사용해도 이해가 어렵습니다.

답변 1

0

코딩 대한민국님의 프로필 이미지
코딩 대한민국
지식공유자

너무 잘 하신겁니다. 실제 시험때는 transform 이든 뭐든 다 생각이 안나고 내가 평상시 연습하고 확실히 알고 있는것만 생각나기 때문에 대부분의 수험생분들이 거의 노가다로 코딩해서 문제를 해결합니다.

 

정말 잘하신거예요.

 

굳이 transfrom 으로 하고 싶으시다면 다음과 같이 하시면 됩니다.

 

df['yr'] = df['날짜'].str[:4] # 처음 4글자만

df['sum'] = df[['전자제품', '가전제품', '의류', '잡화']].sum(axis=1)

df['gsum'] = df.groupby('yr')['sum'].transform('sum')

result = df.loc[df['gsum'].idxmax()].iloc[0]

print(int(round(result['gsum'] / 12, 0)))

 

그리고 transform 이 이해되기 쉬우시라고 아침에 자료를 준비햇는데 다음의 내용을 참고해보면 도움이 많이 될것 같습니다.

 

슬라이드1.PNG.webp슬라이드2.PNG.webp슬라이드3.PNG.webp슬라이드4.PNG.webp

 

 위의 내용은 제가 영상으로 올려드릴께요.

이진형님의 프로필 이미지
이진형

작성한 질문수

질문하기