
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.
* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.
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) 단축키로 코드를 한 번에 선택할 수 있어요!
