본문 바로가기

데이터분석

[python스터디] groubpy 와 pivot_table 결과값 차이점 안녕하세요 오늘은 데이터 분석시 많이 쓰이는 groupby와 pivot_table의 차이점에 대해 스터디 해보도록 할게요!! 아래와 같은 데이터프레임이 있는데요. 저희는 시군구명, 브랜드명별로 상호명을 세어 보도록 하겠습니다. 한가지 팁을 드리자면, ~~~별이 나오면 00별 기준으로 groupby나 pivot_table을 사용하시면 됩니다. 예를 들어, 지역별, 연령별이면 df.groupy('지역'), pd.pivot_table(index = '연령') 이런식으로 써주시면 됩니다. 그러면 바로 결과 확인해볼게요! groupby로 하면 아래와 같이 시리즈 파일로 나와서 reset_index()를 통해서 데이터프레임으로 만들어줍니다. df_cafe_vs = df_cafe.groupby(['시군구명','브랜드.. 더보기
[기초통계스터디] IQR로 파악해보는 이상적 데이터 분포범위는? 오늘은 통계에서 분포의 퍼짐을 나타내주는 IQR에 대해 스터디 해보도록 할게요! IQR(interquartile range)이란? 1사분위값과 3사분위값의 차이를 말하는데요. 공식으로는 3Q(75%값) - 1Q(25%값)입니다. IQR은 분포의 퍼짐을 나타내줍니다. 당연히 IQR이 클수록 분포가 넓게 퍼져있는 것이겠죠? 근데 분포의 퍼짐을 보다보면 일반적인 데이터 범위의 분포를 벗어나는 것들이 있을 껀데요. 이를 '이상치'라고 합니다. 이상치는 보통 IQR * 1.5를 넘어간 값으로 찾습니다. 아래 그림을 보시면 IQR이 3.5인 것을 알 수 있고( 6 - 2.5 = 3.5) 이상적 표본 분포는 IQR*1.5인 5.25인 것을 알 수 있습니다( 3.5 * 1.5 = 5.25) 1분위값 2.5 - 5.25.. 더보기
[python스터디] 문자열 치환/제거(replace 함수) 안녕하세요 오늘은 참 유용한 함수인 replace에 대해서 살펴보도록 할게요. replace는 전처리 하다보면간단할 것 같은데 막상 하려고 하면 어려운 전처리 과정에서 크게 도움이 될 때가 많은데요. 특정 문자열을 제거하거나 생략하면 됩니다. 제거하는 것도 사실 치환의 일부분인데요. replace('기존문자','바꿀문자')에서 '바꿀문자'에 '' 이렇게 공백으로 해두면 제거가 된답니다. 저는 오늘 아래 테이블에서 뚜레쥬는 '1', 파리바게뜨는 '0'으로 바꿔보겠습니다. heat['브랜드명'].replace('뚜레쥬르',1).replace('파리바게뜨',0) 바꾸니 시리즈 확인하실 수 있습니다 쉽죠???ㅎㅎ 잘 활용해보세요~~ 더보기
[SQL스터디] Union all로 테이블 합치기 안녕하세요 오늘은 Union all에 대해서 스터디해보려고 합니다. union all은 동일한 컬럼을 가진 두테이블을 행으로 즉, 세로로 합치는 집합연산자입니다. 이 때 컬럼은 반드시 동일해야 합니다. 그럼 실습을 해볼텐데요. 아래 두개 테이블이 있습니다. 첫번째는 co_orders라는 테이블이고요. 두번째는 oe_orders라는 테이블입니다. 앞서 말씀드렸듯이 두테이블을 합치려면 컬럼갯수와 컬럼명이 동일해야합니다. 저는 order_id 컬럼만 합쳐보고 총 order_id를 세어보도록 할게요. 쿼리문은 아래와 같습니다. 참 쉽죠?? SELECT order_id FROM `studied-triode-319007.shipcmh_dataset.oe_orders` union all SELECT order_id .. 더보기
[SQL스터디] lag함수로 이전 데이터 불러오기 오늘은 윈도우 함수인 lag함수에 대해 스터디해보도록 할게요! lag함수는 이전값을 불러와서 비교를 할 수 있기 해주는데요. 전일 대비, 전주 대비, 전월 대비, 전년 대비 성장률 등을 구할 때 유용하답니다 일단 테이블을 불러올게요! 판매 테이블인데요. 일자별 수량과 판매값이 나와있습니다. SELECT * FROM `studied-triode-319007.shipcmh_dataset.av_sales` 저는 일자별로 판매수량과 매출액을 파악해보도록 할게요 그러면 group by로 묶어주면 되겠죠? SELECT MONTH_ID, count(MONTH_ID) as day_unit , round(sum(sales),1) as day_total FROM `studied-triode-319007.shipcmh_da.. 더보기
[SQL스터디] left join으로 두 테이블 합치기 안녕하세요 오늘은 빅쿼리를 이용하여 left join을 통해 데이터를 병합하는 것을 해보려고 해요. 구글 빅쿼리는 클라우드로 사용하는 SQL이라고 보면 되는데요. 화면 UI는 아래와 같이 생겼어요!! 빅쿼리 사용방법은 다음기회에 알려드릴게요. 아래 reservation 테이블과 order테이블을 열로 합칠 껀데요. 간단히 말해서 가로로 컬럼이 추가되는거죠. 두 테이블이 합쳐지기 위해서는 공통된 컬럼이 있어야하는데 두테이블에 동일하게 reserv_no가 보이시죠? 이 reserv_no를 key값으로 간단하게 테이블을 합쳐 보도록 할게요! 아래와 같이 쿼리를 작성했는데요. from절이 복잡한 이유는 제가 구글스프레드시트의 파일을 불러와서 그래요. 저는 reservation 테이블을 'a'로 order테이블을.. 더보기
[python스터디] 여러개의 파일 행으로 합치기(append 함수활용) 안녕하세요 오늘은 여러개의 CSV파일을 하나로 합치는 스터디를 해보려고 합니다. 바로 append 함수를 사용할 껀데요. 데이터셋이 아래와 같이 2개 파일이 있고 동일한 컬럼을 가지고 있을때, 쓰시기 좋은 방법입니다. 1)데이터셋 : 2019년도 1월 지하철 이용데이터 2)데이터셋 : 2019년도 2월 지하철 이용데이터 방법은 아래 순서로 하시면됩니다. 1. 두개의 데이터셋을 담을 데이터 프레임 만들기 2. 불러올 파일을 변수 temp_1,temp_2에 담기 3. append로 변수 1,2를 데이터프레임에 담기 data = pd.DataFrame() #데이터프레인 만들기 file_1 = 'CARD_SUBWAY_MONTH_201901.csv' file_2 = 'CARD_SUBWAY_MONTH_201902... 더보기