Python/멋사_AIS713 Day 20~23 Day 20~23 데이터 샘플링 더 큰 데이터 세트에서 의미있는 정보를 찾아내기 위해 모든 데이터의 일부를 분석하는 방법구글 애널리틱스 참고 1. numpy로 샘플링 (1) 랜덤 선택 sample_no = np.random.default_rng(42).choice(raw['가입자 일련번호'].unique(), 10000) # 가입자 일련번호 고윳값 개수(=숫자 형태, 랜덤선택할 범위) 중에서 1만 개를 랜덤선택한다 # np.random.seed(42) 값을 고정하는 역할, numpy 공식 문서는 별로 추천하지 않는다 (2) 랜덤 선택한 데이터 추출 df = raw[raw['가입자 일련번호'].isin(sample_no)] # isin으로 샘플링한 가입자 일련번호 데이터만 추출.. 2024. 1. 25. Day 19 Day 19 (Day 18 이어서) tidy data 각 변수가 열이고 각 관측치가 행이 되도록 배열한 데이터 ▶깔끔한 데이터를 만들기 위해서는 melt해야 한다 == 컬럼에 있던 데이터를 행으로 녹여야 한다 국가통계포털이나 통계청 등에서 제공하는 데이터는 잘 정리된 데이터지만, 가공과 집계를 해놓은 상태로 깔끔하진 않은 경우가 많다. 모든 컬럼이 출력되게 설정하기 pd.options.display.max_columns = 5 #5개 컬럼까지만 보여준다 (기본값은 10개) pd.options.display.max_columns = None # 전체 컬럼을 보여준다 pd.melt() pd.melt(df_first, id_vars='지역') # id_vars 녹이지 않고 기준으로 설정해 남길 컬럼(나머지 컬.. 2022. 10. 13. Day 18 Day 18(Day 16 이어서) 컬럼명 변경하기 # 방법1) 리스트 컴프리헨션 사용 weekday_list = [ day for day in "월화수목금토일"] weekday_list = weekday_count.index # list("월화수목금토일") 도 가능 # weekday_count의 인덱스가 weekday_list와 동일하다 # 방법2) 람다식 사용 weekday_count.index.map(lambda x : "월화수목금토일"[x]) # weekday_count.index와 인덱스 결과(0~6 : 월~일)의 각 요소를 맵핑한다 시각화 관련 더보기 시카레오님 블로그 참고 https://sikaleo.tistory.com/14 1. 그래프에 수평선/수직선 그리기 # 수평선 그리기 plt.axh.. 2022. 10. 12. Day 16 day 16 (스압) Plotly(day15 ~ 16) 시각화의 3요소 : 데이터(값), x축, y축 데이터에 어떤 그래프가 적절할 지 안목을 기르는 것이 중요하다. 분석 목적과 데이터 형태에 따라 적절한 그래프가 있는데, 꾸준히 연습하면서 감각을 키워야 한다. 시각화에 대한 기본적인 이해를 바탕으로 도구를 활용해야 한다. method의 옵션은 외울 필요가 없다. 다만 Docstring을 보며 그래프를 어떻게 바꿀지 생각하면서 어떤 파라미터를 사용할 수 있을지 고민해야 한다. 1) 장점 -인터렉티브한 시각화 -한글설정 필요가 없다!!! -인터페이스만 파이썬이고 내부는 자바스크립트라 빠르다 -증권 관련 시각화뿐만 아니라 비즈니스 관련 시각화도 미려하게 제공한다 2) Plotly Express: high-l.. 2022. 10. 6. Day 15 Day 15 map과 apply -map과 apply는 모두 벡터 연산을 해서 속도가 빠르다 -보편적으로 map이 사용된다 map apply applymap(덤) Series O O X DataFrame X O O 1. map() -Dataframe의 Series를 input으로 받는다 -특정 Series를 대상으로 함수를 적용할 수 있다 df['prod_year'] = df['year'].map(lambda x: x**2) # year 컬럼 값들을 제곱하는 익명의 함수 람다 x 지정 # 결과값은 prod_year컬럼으로 지정 2. apply() -Series와 DataFrame 둘 다 input으로 받는다 -전체 column(series)를 대상으로 함수를 적용할 수 있다 -axis로 원하는 축 방향에.. 2022. 10. 6. Day 14 Day 14 url알아보기 네트워크 > XHR/JS/Doc > Headers 에서 원하는 URL을 찾을 수 있다 pd.read_html(url) #url의 table정보를 읽어온다 pd.read_html(url, encoding="utf-8") #한글이 깨질 때는 인코딩을 직접 기입한다 (또는 cp949) 링크 정보 수집 1. GET방식과 POST방식 get과 post방식은 모두 브라우저가 서버에 요청하는 것이다. 네트워크 > Js > Headers > Request Method에서 확인할 수 있다. GET : 필요한 데이터를 Query String에 담아 전송한다. 쿼리 스트링은 URL의 끝에 ?와 함께 이름과 값으로 쌍을 이루는 요청 파라미터를 말한다. 만일 요청 파라미터라 여러개면 &로 연결한다. .. 2022. 10. 4. Day 12~13 결석 해야할 것 -인프런 학습: [백문이불여일타]데이터 분석을 위한 중급 SQL 섹션 2. 조건문까지 수강 -RFM분석 예제 풀기 -solveSQL예제 풀기 2022. 10. 4. Day 10 Day 10 범주형 변수 범주형 데이터 유일값의 빈도수 df.hist(bin=50) plt.show() ≫ 히스토그램으로 시각화해서 확인했을 때 막대 그래프 사이사이 이가 빠져있는지(일정하게 간격이 넓은지) 확인해보면 범주형/수치형 구분할 수 있다. df.nunique() #변수별 유일값의 빈도 수 출력 #시리즈와 데이터 프레임 모두 사용 가능하다. df['mpg'].unique() #시리즈에서만 사용 가능 sns.countplot(data=df, x='origin') countplot은 x, y축 중 하나만 지정하면 나머지 축에 빈도수를 알아서 생성한다. x축을 지정하면 vertical, y축을 지정하면 horizontal 형태이다. 단점: 대표값만 표시해 데이터의 분포를 볼 수 없다. 1개 변수의 빈.. 2022. 9. 27. Day 09 Day 09 기술통계값을 한 번에 생성해주는 EDA 도구 EDA 파일을 생성해주는 도구가 많지만 문서를 보고 어떤 식으로 내 데이터에 적용해야 하는지 해결해야 한다 Pandas Profiling 관찰할 수 있는 기본 기술통계: number of variables(변수의 개수), number of observations(관측값), missing cells(결측치 개수), missing cells %(결측치 비율), duplicate rows(중복행), duplicate rows %(중복행 비율), total size in memory(총 메모리 사용량), average record size in memory(평균 메모리 사용량) --> 전체 데이터셋 정보를 확인할 수 있게 된다. 수치형(numerical).. 2022. 9. 27. 이전 1 2 다음