커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
pd.Series.nuique 사용되는 이유
undefined주차
북마크
정*아
댓글
3
추천
0
조회수
8
조회수
8
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.


sparta_data가 data frame 타입이고, grouping도 data frame 타입인데

왜 pd.dataFrame.nunique가 아니라

apply(pd.Series.nunique)로 작성되어진게 의아해서 확인해보니

아래 캡처화면과 같이 grouping['user_id']는 Series이더라구요.


data frame테이블에서도 하나의 열은 Series이기 때문인거겠죠?

질문을 하다보니 어느정도 해소가 되어서 답정너 식의 질문을 드리게되었습니다..!


스파르타 즉문즉답





작성한 코드 및 에러 메세지

#숙제 first try
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
plt.rc('font', family='NanumBarunGothic')


sparta_data = pd.read_table('/content/cohort_data.csv', sep = ',')


#1-1. 날짜타입 변환
format = '%Y.%m.%d'
sparta_data['start_time'] = pd.to_datetime(sparta_data['created_at'],
                                           format=format,
                                           infer_datetime_format=True)



#1-2. start_time > 주차 정보 반환
sparta_data['start_week']= sparta_data['start_time'].dt.isocalendar().week


#처음 수강 시작한 주 범위 확인하기
category_range = set(sparta_data['start_week'])
category_range



#1-3. progress_rate > 커리큘럼 번호 반환


#a. 범주화할 데이터 리스트로 만들기
progress_rate = list(sparta_data['progress_rate'])
progress_rate


#b. 범주를 구분하는 기준 및 라벨(수강 주차) 만들기
bins = [0,4.11,26.03,41.10,61.64,80.82,100]
labels = [0,1,2,3,4,5]


#c. 범주화하기: 범주화에 사용하는 함수 pd.cut
cuts = pd.cut(progress_rate,
              bins,
              right=True,
              include_lowest=True,
              labels=labels)
cuts


#d. 범주화 결과물을 테이블로 변경하기
cuts = pd.DataFrame(cuts)
cuts.tail()


#e. 기존테이블에 현재 수강주차 테이블 합치기
sparta_data = pd.concat([sparta_data, cuts],
                        axis=1,
                        join='inner')
sparta_data.head()


#f. 테이블 컬럼 이름 변경하기
sparta_data.columns = ['created_at','user_id','name','progress_rate','start_time','start_week','class_week']
sparta_data.head()



#2-1. 개강반주차별/현재수강주차별 테이블 구성
grouping = sparta_data.groupby(['start_week','class_week'])
print(type(grouping))


cohort_data = grouping['user_id'].apply(pd.Series.nunique)
#cohort_data = pd.DataFrame(cohort_data)
#cohort_data.head(20)


print(type(grouping['user_id']))

오류 발생 시, 작성한 코드 전체와 에러 메시지를 첨부해 주세요.

Tip 1) </> 아이콘을 눌러 코드박스를 만들어 보세요.

Tip 2) Ctrl+A(맥의 경우 Command+A) 단축키로 코드를 한 번에 선택할 수 있어요!




취소
 공유
취소
댓글 0
댓글 알림
나의얼굴