세조목

TIL(Today I Learned) 2일차(23.11.29) 본문

데이터 분석 공부/TIL(Today I Learned)

TIL(Today I Learned) 2일차(23.11.29)

세조목 2023. 11. 29. 23:52

<5주차 복습 과정에서 발생한 의문점에 대한 답>

1. apply( ) 함수는 apply 안에 들어있는 데이터를 어떻게 적용할 것인가를 명시하는 부분이다.

    grouping['user_id'].apply(pd.Series,nunique)가 의미하는 것은 'grouping 변수의 'user_id'라는 컬럼에 들어있는 값을

    Series 형태로 중복 값 없이 명시해줘' 이다.

 

2. .reset_index( ) 

index( ) 를 적용시키기 전 'start_week'와 'week''는 index 상태이다.

이 두 데이터를 다시 데이터 항목(columns)으로 바꿔줘야하기때문에 index함수를 적용시키는 것이다.

 

3. for j in range(1, 6, 1):

      retention.at[(w, j)] = retention.at[w,j] / retention.at[w,j-1]

 

for j in range( )에 1, 6, 1이 들어간다면 'retention.at[(w,0)]' 값은 어떻게 구하는건가?

range(1, 6, 1)에서 1과 6은 첫번째, 여섯번째를 의미한다. 
retention[(w, 1), 'user_id']의 경우 w번째 주에 시작한 사람의 첫번째 주차를 의미한다. 
python에서는 가장 처음 나오는 순서를 0으로 표시하는데 이 부분을 놓치고 있었기때문에 헷갈렸던 것이다.

 

<SQL 예제를 풀면서 학습한 내용>

1. having절은 group by절 다음에 나온다.
2. 조건을 걸때 where절에 조건을 적으면 되는데 count, sum과 같은 집계함수는 where절에 쓸 수 없기때문에 having절에 작성해야한다.