목록데이터분석 (73)
개발은 처음이라 개발새발
안녕하세요. 드디어 50번째 포스팅을 하게 됐습니다. 대학생 시절 야구 기자를 하겠다 다짐한 이후에 네이버 블로그를 열심히 하던 시절 이래로 자주는 아니지만 꾸준히 한 결과물이라 개인적으로 기쁩니다. 50번째로 포스팅할 글은 SQL입니다. SQL은 데이터분석에 있어서 데이터베이스를 구축하고 데이터를 저장하는 데 필수적인 프로그램인데요. 열심히 공부 중인 만큼 꾸준히 포스팅해보도록 하겠습니다. 첫글로 SQL에서 테이블을 생성하고 데이터를 입력하는 것을 작성해보겠습니다. 우선 테이블을 생성하기 위해서 create table 문법을 활용해야 합니다. CREATE TABLE `member_tbl` ( `member_id` char(8) NOT NULL, `member_name` char(5) NOT NULL, ..
안녕하세요. 2주만의 포스팅을 하게 됐습니다. 오늘 포스팅할 것은 concat()함수에 이어 merge()함수로 데이터프레임을 병합하는 것입니다. merge()함수는 SQL의 join과 비슷한 방식으로 어떤 기준에 의해 두 데이터프레임을 병합하는 방법입니다. 이때 기준이 되는 열이나 인덱스를 key라고 부릅니다. 이때 키가 되는 열이나 인덱스는 반드시 합치려는 두 데이터프레임에 모두 존재해야 합니다. 그렇다면 예제를 통해 코딩을 진행해보겠습니다. import pandas as pd df1= pd.read_excel('./stock price.xlsx') df2= pd.read_excel('./stock valuation.xlsx') print(df1) print('\n') print(df2) print(..
데이터프레임은 구성의 형태와 속성이 균형하담녀 행 또는 열 중에 어느 한 방향으로 이어 붙여도 데이터의 일관성을 유지할 수 있습니다. 오늘은 기존 데이터프레임의 형태를 유지하면서 이어 붙이는 concat() 함수에 대해 알아보겠습니다. 우선 예제를 만들어 보겠습니다. import pandas as pd df1 = pd.DataFrame({'a':['a0','a1','a2','a3'], 'b':['b0','b1','b2','b3'], 'c':['c0','c1','c2','c3']}, index=[0,1,2,3]) df2 = pd.DataFrame({'a':['a2','a3','a4','a5'], 'b':['b2','b3','b4','b5'], 'c':['c2','c3','c4','c5'], 'd':['d2..
하나의 열이 여러가지 정보를 가지고 잇을 때 각 정보를 서로 분리해서 사용하는 경우가 있는데요. 그중에서 대표적인 것이 날짜 정보겠죠. 예를 들어 날짜라는 컬럼 안에 "2022-08-20" 이라는 정보가 담겨 있다면 날짜라는 컬럼에 연도, 월, 일 총 3가지의 정보가 담겨 있는 것입니다. 이름 같은 경우도 성과 이름을 모두 담고 있기 때문에 좀 더 데이터를 세분화해 다루기 위해서는 이를 분리해 구분하는 것이 좋습니다. 이번 시간에는 주가데이터 예제를 통해서 코딩을 진행해보겠습니다. import pandas as pd #데이터셋 가져오기 df = pd.read_excel('./주가데이터.xlsx') print(df.head(),'\n') print(df.dtypes,'\n') #연,월,일 데이터 분리하기 ..
데이터프레임의 열에 isin()매소드를 적용하면 특정 값을 가진 행들을 따로 추출할 수 있습니다. 이때 isin() 매소드 안에는 데이터프레임에서 추출하려는 값들을 리스트로 해서 입력하면 됩니다. 그렇다면 바로 예제를 통해 풀어보도록 하겠습니다. 먼저 비교를 위해 boolean indexing을 먼저 적어보도록 하겠습니다. import seaborn as sns titanic = sns.load_dataset('titanic') #함께 탑승한 형제 또는 배우자의 수가 3, 4, 5인 승객만 추출 - 불린 인덱싱 mask3 = titanic['sibsp'] == 3 mask4 = titanic['sibsp'] == 4 mask5 = titanic['sibsp'] == 5 df_boolean = titani..
오늘은 책을 하나 소개해볼까 합니다. 최근에 데이터분석 업무를 하면서 통계학 비전공자인 저는 굉장히 한계를 느끼고 있는데요. 그래서 올해 하반기 목표로 통계학 전공자만큼은 아니지만, 심화학습을 하기 전 맛보기 정도로는 알자는 결심을 하게 됐습니다. 그렇게 책을 한권 구입하게 됐는데 바로 "세상에서 가장 쉬운 통계학 입문"입니다. http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9788990994004 통계학입문 - 교보문고 중학교 기초수학으로 3주 만에 끝내는 통계학마케팅을 위한 데이터 분석, 금융상품의 리스크와 수익률 분석, 주식과 환율의 변동률 분석 등 쏟아지는 데이터에서 의미 있는 정보를 뽑아내기 위 ..
파이썬을 통해서도 엑셀과 같이 필터링이 가능한대요. 오늘 다뤄볼 것은 특정 조건식을 작성해 이를 만족하는 값들만 뽑아낼 수 있는 불린 인덱싱(boolean indexing)에 대해 알아보겠습니다. 불린(boolean)은 시리즈 객체에 어떤 조건식을 적용하면 참(True), 거짓(False)인지를 판별하는 것인데요. 이를 토대로 참인 값들만 필터링 하는 것이 불린 인덱싱입니다. 오늘도 seaborn의 'titanic'예제를 활용해 불린 인덱싱을 하는 과정을 살펴보겠습니다. import seaborn as sns titanic = sns.load_dataset('titanic') # 10대 승객 찾기 mask1 = (titanic['age'] >= 10) & (titanic['age'] = 60 ) df_u..
안녕하세요, 이번에는 판다스에서 열의 순서를 변경하는 것에 대해 알아보도록하겠습니다. 이번 시간 예제는 seaborn에서 제공하는 타이타닉 데이터를 가지고 진행하겠습니다. 우선적으로 컬럼을 순서를 변경하는 데 있어 필요한 것은 컬럼의 리스트를 만드는 것입니다.그렇다면 컬럼 리스트를 만드는 것까지 코딩을 진행해보겠습니다. import seaborn as sns titanic = sns.load_dataset('titanic') df = titanic.loc[0:4,'survived':'age'] print(df,'\n') #컬럼 리스트 만들기 columns = list(df.columns) print(columns,'\n') survived pclass sex age 0 0 3 male 22.0 1 1 1..
이번 시간엔는 timestamp와 period를 가지고 인덱스로 활용하는 방법에 대해서 알아보겠습니다. 두가지를 인덱스로 활용하게 되면 기간별로 데이터를 분석하는 데 있어 굉장히 용이하겠죠? 기간별로 데이터를 분류하고 분석하는 것은 어찌보면 데이터분석에 있어 가장 많이 활용되고 기본적인 것이니 알아둔다면 도움이 많이 될 것으로 보입니다. 그렇다면 바로 코딩을 살펴보겠습니다. 인덱스로 지정하는 것은 그동안 많이 사용된 df.set_index()함수를 활용하면 됩니다. import pandas as pd df = pd.read_csv('stock-data.csv') #Date 타입 변경 df['new_date'] = pd.to_datetime(df['Date']) df.set_index('new_date',..
앞서 소개해드린 timestamp와 poried배열을 소개해드렸는데요. 이를 토대로 날짜 데이터를 분리해보도록하겠습니다. 예제는 주식 거래 데이터를 활용해보겠습니다. import pandas as pd df = pd.read_csv('stock-data.csv') print(df.head(),'\n') print(df.info(),'\n') Date Close Start High Low Volume 0 2018-07-02 10100 10850 10900 10000 137977 1 2018-06-29 10700 10550 10900 9990 170253 2 2018-06-28 10400 10900 10950 10150 155769 3 2018-06-27 10900 10800 11050 10500 13354..