본문 바로가기
TIL

내배캠 TIL 16일차

by ColorConeHead 2024. 1. 10.
반응형

1. python 개인과제 해설

라이브코딩을 하면서 설명을 해주셔서

코드를 구현할 때에 절차에 대해서

다시 한 번 되짚어보는 기회가 되었다.
class Customer():
    name = ""
    email = ""
    point = 0
    '''
    '''
    '''
    '''​


나는 위와 같이 클래스를 정의할 때 

미리 받을 값의 디폴트를 정의하고 메서드를 정의했지만.

class Customer():
    def __init__(self):
        self.name = ''
        self.email = ''
        self.points = 0


사실 위와 같이 __init__을 사용해야 한다고 하였다.
전자의 방식대로 하지 않는 이유가 있겠지
하라고 만들어놨으니까 하는게 맞다


__init__은
1. 컨스트럭터라고 불리는 초기화를 위한 함수.
2. 인스턴트화(객체화)를 실시할 때 반드시 처음에 호출되는 특수한 함수.
3. 오브젝트 생성과 관련하여 데이터의 초기를 실시하는 함수.

참고블로그 : https://engineer-mole.tistory.com/190

 

 

 

 

2. 팀 프로젝트

(1) 주제 정하기

이전에 팀원분께서 주신 데이터셋에서
뽑을 수 있는 주제를 각자 공유해보고
그 중에서 투표를 통해 선정하였다.

'직종별, 연봉별, 결혼유무 관심사 콘텐츠'

하지만 다른 매력적인 주제도 많았기에
일단은 최대한 데이터셋을 만져보면서 EDA를 할 생각이다.

데이터 출처 : https://www.bigdata-culture.kr/bigdata/user/data_market/detail.do?id=cfa2842a-5643-4ca8-9864-e6094e2a8cfc

 

 

(2) EDA

데이터 셋에서 정의한 'OTT'가 유튜브는 제외한 유료 OTT만을 의미하는 것 같았다.

그 때문인지 모른 유형의 콘텐츠 시청 경험에서의 응답이 부정("N")이 많았고

회의 끝에 긍정("Y") 응답의 표본 수도 충분하다고 생각하여 해당 데이터 셋만 이용하기로 하였다.

아래는 EDA를 하며 작성한 코드이다.

위에서 정한 주제대로 뿐만 아니라 다른 여러 범주를 통해 groupby해서 그래프를 그렸다.

얼른 특이점을 발견하면 좋겠다.
코드 결과값들은 그래프가 너무 많이 나와서 넣을 수가 없었다.
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

df = pd.read_csv('-------------------------------.csv')

condition = (df['국내영화'] == 'Y') | (df['해외영화'] == 'Y') | (df['국내드라마'] == 'Y') | (df['해외드라마'] == 'Y') | (df['예능'] == 'Y') | (df['다큐멘터리'] == 'Y') | (df['애니메이션'] == 'Y') | (df['생방송'] == 'Y') | (df['키즈장르'] == 'Y')

filt = df[condition].reset_index(drop=True)

def bools(x):
    if x in ['Y', 'N']:
        if x == 'Y':
            return True
        else:
            return False
    else:
        return x
    
filt2 = filt.applymap(bools)

a = filt2.iloc[:, 2:]

for item in a['가구소득정도'].unique():
    temp = a[a['가구소득정도'] == item].sum()

    plt.pie(x=temp[:9], labels=temp.index[:9], autopct='%.1f%%')
    plt.title(f'월 {item} 소득의 ott시청 장르')
    plt.show()

for item in a['직업'].unique():
    temp = a[a['직업'] == item].sum()

    plt.pie(x=temp[:9], labels=temp.index[:9], autopct='%.1f%%')
    plt.title(f'{item}의 ott시청 장르')
    plt.show()

for item in a['결혼'].unique():
    temp = a[a['결혼'] == item].sum()

    plt.pie(x=temp[:9], labels=temp.index[:9], autopct='%.1f%%')
    plt.title(f'{item}의 ott시청 장르')
    plt.show()

for item in a['연령대'].unique():
    temp = a[a['연령대'] == item].sum()

    plt.pie(x=temp[:9], labels=temp.index[:9], autopct='%.1f%%')
    plt.title(f'{item}의 ott시청 장르')
    plt.show()


for item in 유형:
    temp = a[[item, '성별구분', '연령대', '결혼', '가구소득정도', '직업', '거주지']][a[item] == True]
    core = temp['직업'].value_counts()

    plt.figure()
    plt.bar(core.index[1:], core[1:])
    plt.title(f'{item} 시청자 직업 분포')
    plt.xticks(rotation=90)
    plt.show

참고 블로그 : https://wikidocs.net/92114
반응형

'TIL' 카테고리의 다른 글

내배캠 TIL 18일차  (0) 2024.01.12
내배캠 TIL 17일차  (1) 2024.01.11
내배캠 TIL 15일차  (1) 2024.01.09
내배캠 TIL 14일차  (0) 2024.01.08
내배캠 TIL 13일차  (0) 2024.01.05