inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

섹션4 - 모의고사1 - 3번 문제

해결된 질문

306

캠사 Camping sapiens

작성한 질문수 6

1

안녕하세요 수강생입니다.

강의듣다가 질문이 있어 이렇게 글남깁니다.

 

섹션4 - 모의고사1 - 3번 문제의 replace를 활용하거나 map을 활용하는 부분입니다.

 

저는 .replace.replace.replace를 반복하지 않고 아래와 같이 곧바로 딕셔너리 형태로 코드를 치니 마치 map에 딕셔너리를 리스트로 담은 것처럼 동작을 하던데 올바른 방법인지 모르겠습니다.

막상 답이 133으로 동일하게 나오다보니 replace나 map의 차이점 또는 딕셔너리의 올바른 활용(?) 부분이 궁금해지네요.

 

import pandas as pd
df = pd.read_csv('members.csv')

df = df.dropna(subset=['views'])
# print(df.isnull().sum())

df['f3'] = df['f3'].fillna(0)
df['f3'] = df['f3'].replace({'silver':1, 'gold':2, 'vip':3})
# print(df.head())
print(int(df['f3'].sum()))

python 머신러닝 빅데이터 pandas 빅데이터분석기사

답변 1

1

퇴근후딴짓

네, replace와 딕셔너리를 정확하게 사용해주셨습니다. 👍👍👍
replace를 여러 번 사용하는 것은 비효율적인 방법이고, 자주 사용하는 방법은 아닙니다!

수험생(입문자)에게는 구현하는 것이 목적이라 효율보다는 단순함을 목표로 했어요!

 

replace나 map의 차이점
replace는 단순 문자열의 변환이에요. 문의 주신 것처럼 딕셔너리를 활용할 수도 있습니다.

map은 단순히 값을 변환한다기 보다 다양한 함수를 사용할 수 있어 더 범용적으로 활용할 수 있다는 장점이 있답니다.


딕셔너리

리스트 처럼 여러개의 값을 담은 자료형(type)입니다. 데이터를 담는 변수이고, 어떤 곳에든 활용 가능해요 :)
빅데이터 분석기사에서는 주로 작업형2 마지막부분에서 예측값을 데이터 프레임으로 변경할 때 주로 사용하고 있어요!

0

캠사 Camping sapiens

안녕하세요, 이어서 섹션4- 모의고사1 - 7번 문제 질문이 있습니다.

아래와 같이 풀이해주셨는데요.

  • index '2001' 데이터(행)의 평균보다 큰 값의 수와

  • index '2003' 데이터(행)의 평균보다 작은 값의 수를 더하시오

     

df = pd.read_csv("data.csv", index_col="Unnamed: 0")
# print(df.head(2))

m2001 = df.loc[2001].mean()
# print(m2001)
cond = df.loc[2001] > m2001
r1 = sum(cond)

m2001 = df.loc[2003].mean()
cond = df.loc[2003] < m2001
r2 = sum(cond)

print(r1+r2)

여기서 m2001 = df.loc[2003].mean() 부분의 변수는 m2001이 아니라 m2003으로 새로 담고 cond = df.loc[2003] < m2003 으로 비교해야 하지 않을까요?

문제가 정확히 이해가 가지 않아 답변주시면 감사하겠습니다~ ㅠㅠ

1

퇴근후딴짓

변수명 때문에 오해가 있었던 것 같아요!
네, 질문 주신 분의 말이 맞습니다! m2003에 새로 담는 것이 깔끔할 것 같아요!
아래와 같이 수정했습니다. 👍

하지만 정답은 같습니다. 🙌
이미 r1을 구한 다음 m2001 변수에 덮어쓰기(m2001 = df.loc[2003].mean())를 한 경우라서 r1과 r2의 값에는 영향이 없습니다.

 

df = pd.read_csv("data.csv", index_col="Unnamed: 0")
# print(df.head(2))

m2001 = df.loc[2001].mean()
# print(m2001)
cond = df.loc[2001] > m2001
r1 = sum(cond)

m2003 = df.loc[2003].mean()
cond = df.loc[2003] < m2003
r2 = sum(cond)

print(r1+r2)

수강 연장 문의드립니다.

0

16

2

강의 연장 문의

0

22

2

수강 신청 연장 문의드립니다.

0

30

2

작업형 1번문제... 환경관련

0

28

2

12회 기출은 언제 업데이트 될까요??

0

36

2

8/6 작성한 연장문의 질문글에 대한 재요청

0

38

2

수강기간 연장 문의

0

37

2

수강기간 연장문의

0

36

2

수강기간 연장 요청 문의드립니다

0

38

2

수강 기간 연장 문의

0

47

2

수강연장 가능 문의 (기간 약 한달반)

0

60

2

수강기간 연장 가능할까요 선생님

0

74

2

Section15. 수업에 사용하는 데이터 주소가 다 보이지 않아서 실습을 위한 데이터를 다운 받지 못하고 있습니다.

0

56

3

수강연장요청 문의

0

89

2

아무래도 다음 시험 연장은 어렵겠죠?

0

107

2

빅분기 12회 결과 관련 문의

0

112

1

책이랑 강의랑 순서나 예제가 다른것 같네요

0

81

2

수강연장 문의

0

105

2

재검토 요청 방법 좀 알려주셔요...-.-;;

0

106

2

12회 실기 질문(작업형 2)

0

92

2

뒤로가기 버튼 같은 것이 있나요?

0

66

1

강의 연장 문의

0

99

2

출력값 질문

0

72

2

수업노트가 어디에 있나요?

0

63

1