본문 바로가기

728x90
반응형
SMALL

All

(165)
[Python] 5. 모집단과 표본 : 모평균 추정, 중심극한정리 기술통계 분포를 표현하는 또다른 방법은 분포의 특징을 나타내는 여러가지 숫자를 계산하여 그 숫자로서 분포를 나타내는 것이다. 이러한 값들을 기술통계(descriptive statistics)라고 한다. 대표적인 기술통계는 다음과 같다. 표본평균, 표본중앙값, 표본최빈값 표본분산, 표본표준편차 표본왜도, 표본첨도 표본평균 표본평균(sample mean, sample average): 데이터 분포의 대략적인 위치를 나타낸다. 이 식에서 𝑁은 자료의 개수, 𝑖는 자료의 순서(index)를 뜻한다. 분산과 표준편차 데이터가 얼마나 변동(variation)하고 있는지를 알아야 한다. 이러한 정보를 알려주는 특징값이 표본분산(sample variance) 또는 표본표준편차(sample standard deviati..
[Python] 4. 회귀 : cost(mse) test, gradient, scipy.stats 예제 import numpy as np import pandas as pd import matplotlib.pyplot as plt import scipy.stats as st cost(MSE) test def cost(x,y,w): c=0 for i in np.arange(len(x)): hx = w*x[i] c = c+(hx-y[i])**2 return c/len(x) x_data = [1,2,3] y_data = [1,2,3] print(cost(x_data,y_data,-1)) print(cost(x_data,y_data,0)) print(cost(x_data,y_data,1)) print(cost(x_data,y_data,2)) print(cost(x_data,y_data,3)) [OUT] : 18...
[Python] 3. 공분산, 상관계수 import numpy as np import pandas as pd import matplotlib.pyplot as plt 데이터 불러오기 (pd.read_csv) python 파일 경로에 data3 폴더 만든 후 다음의 ch2_scores_em.csv파일 넣어놓기 df = pd.read_csv('data3/ch2_scores_em.csv', index_col='student number') df.head() # 이해를 위해 10개만 따로 발췌해서 보도록 하자 en_scores = np.array(df['english'])[:10] ma_scores = np.array(df['mathematics'])[:10] scores_df = pd.DataFrame({'english':en_scores, 'ma..
[Python] 2. 대표값, 산포도, 정규화, 도수 import numpy as np import pandas as pd import matplotlib.pyplot as plt from scipy.stats import mode 데이터 불러오기 (pd.read_csv) python 파일 경로에 data3 폴더 만든 후 다음의 ch2_scores_em.csv파일 넣어놓기 대표값 평균값 중앙값 최빈값 df = pd.read_csv('data3/ch2_scores_em.csv', index_col='student number') df.head() scores = df['english'].values scores [OUT] : array([42, 69, 56, 41, 57, 48, 65, 49, 65, 58, 70, 47, 51, 64, 62, 70, 71, ..
[Python] 1. 데이터 종류 : 이산 변수, 연속 변수 import pandas as pd 데이터 불러오기 (pd.read_csv) python 파일 경로에 data3 폴더 만든 후 다음의 ch1_sport_test.csv 파일 넣어놓기 데이터 종류 이산 변수(범주형 변수) : 주사위 눈, 연령, 결석 횟수, 학생수 (1점, 2점 이렇게 끊어지는 경우도 해당) 연속 변수 : 길이, 무게, 시간, 온도 (소수점까지 계속 연속인 경우) df = pd.read_csv( 'data3/ch1_sport_test.csv', index_col='학생번호') df 이산 변수 : 학생 번호, 학년, 윗몸일으키기, 점수, 순위 연속 변수 : 악력 review - 이산 변수와 연속 변수 차이 구분
[Python] 0. SciPy Library(사이파이 라이브러리) 구조 : 확률분포 클래스, 모수 지정, 확률분포 매서드 사이파이를 이용한 확률분포 사이파이(SciPy)는 수치해석기능을 제공하는 파이썬 패키지다. 여러 서브 패키지로 구성되어 있는데 그중 stats 서브 패키지는 확률 분포 분석을 위한 다양한 기능을 제공한다. 다음 코드로 임포트 한다. import scipy as sp import scipy.stats 확률분포 클래스 사이파이에서 확률분포 기능을 사용하려면 우선 해당 확률분포에 대한 확률분포 클래스 객체를 생성한 후에 이 객체의 메서드를 호출해야 한다. 확률분포 객체를 생성하는 명령에는 다음과 같은 것들이 있다. 이 명령들은 모두 stats 서브 패키지에 포함되어 있다. 예를 들어 정규분포 객체는 다음과 같이 생성한다. rv = sp.stats.norm() 모수 지정 확률분포 객체를 생성할 때는 분포의 형상..
[Python] 24. pandas DataFrame 데이터 분석 실습 종합 문제 : sort(), pd.cut(),apply(lambda), sr.quantile(), value_counts(), histogram(), pie chart 예제 import pandas as pd import numpy as np import matplotlib.pyplot as plt import matplotlib matplotlib.rcParams['font.family']='Malgun Gothic' matplotlib.rcParams['axes.unicode_minus'] = False 국어점수 데이터 sr = pd.Series( [90,90,55,60,76,80,76,88,30,25], name="국어점수" ) sr.index=['홍길동','이순신','임꺽정','정난정', '이이','이황','정도전','김철수1', '김철수2','김철수3'] sr [OUT] : 홍길동 90 이순신 90 임꺽정 55 정난정 60 이이 76 이황 80 정도전 76 김철수1..
[Python] 23. pandas DataFrame 맛집 데이터 파싱 분석 실습 : BeautifulSoup, REQ, select_one()예제 from bs4 import BeautifulSoup import urllib.request as REQ import pandas as pd import numpy as np import matplotlib.pyplot as plt from matplotlib import rc import matplotlib rc('font', family='AppleGothic') plt.rcParams['axes.unicode_minus'] = False 메뉴판 닷컴에서 데이터 파싱하기 murl = 'https://www.menupan.com/restaurant/bestrest/bestrest.asp?page=1&trec=33&areacode=bs203&pt=rt' response = REQ.urlopen(murl)..
[Python] 23. pandas DataFrame MultiIndex column : levels, get_level_values(),pd.MultiIndex.from_product()예제 import pandas as pd import numpy as np import matplotlib.pyplot as plt from matplotlib import rc import matplotlib rc('font', family='AppleGothic') plt.rcParams['axes.unicode_minus'] = False data = np.random.randint(1,10, size=4) data array([2, 9, 5, 7]) data = np.random.randint(30,101, size=(4,6) ) data array([[94, 42, 91, 67, 54, 94], [87, 30, 83, 31, 92, 65], [83, 43, 99, 43, 37, 59], [82, 88..
[Python] 22. pandas DataFrame 졸음운전 데이터 분석 연습문제 : read_csv(),concat(),to_datetime(),nlargest(1,kee='all')예제 import pandas as pd import numpy as np import matplotlib.pyplot as plt import matplotlib from datetime import datetime from pandas_datareader import data matplotlib.rcParams['font.family']='Malgun Gothic' matplotlib.rcParams['axes.unicode_minus'] = False 데이터 불러오기 (pd.read_csv) python 파일 경로에 data폴더 만든 후 다음의 파일들 넣어놓기 data1 = pd.read_csv('data/2014년 졸음운전 교통사고.csv',encoding='euc-kr') data2 = pd.read..
[Python] 21. pandas DataFrame 시계열 데이터 : datetime, 삼성주식데이터 파싱&시각화, rolling(window)예제 from bs4 import BeautifulSoup import urllib.request as REQ import pandas as pd import numpy as np import matplotlib.pyplot as plt from matplotlib import rc import matplotlib from datetime import datetime from pandas_datareader import data rc('font', family='AppleGothic') plt.rcParams['axes.unicode_minus'] = False datetime 표준라이브러리 dt = datetime(1995,9,7,9,4,13) dt [OUT] : datetime.datetime(1995, ..
[Python] 20. pandas DataFrame merge(병합) : pd.merge(),pd.concat()예제 import pandas as pd import numpy as np employee = [{'empno':1, 'ename':'kim', 'dept':1}, {'empno':2, 'ename':'lee', 'dept':2}, {'empno':3, 'ename':'park', 'dept':1}, {'empno':4, 'ename':'song', 'dept':3}, {'empno':5, 'ename':'min', 'dept':2} ] dept=[{'dept':1, 'deptname':'관리직'}, {'dept':2, 'deptname':'영업직'}, {'dept':3, 'deptname':'개발직'} ] info =[{'empno':1, 'addr':'서울시','phone':'010-1111-1111'},..
[Python] 19. 기상청데이터 파싱 분석 및 시각화 : bs4 BeautifulSoup, urlib.request , REQ예제 from bs4 import BeautifulSoup import urllib.request as REQ import pandas as pd import numpy as np import matplotlib.pyplot as plt from matplotlib import rc import matplotlib import seaborn as sns rc('font', family='AppleGothic') plt.rcParams['axes.unicode_minus'] = False 중앙일보 전체기사xml jurl = 'https://rss.joins.com/joins_news_list.xml' response = REQ.urlopen( jurl ) soup = BeautifulSoup( response,..
부산대 생딸기 타르트가 맛있는 [카페드팽] 요즘 코로나 때문에 카페에 못 가니 카페에서 공부하던 게 너무 그립다 사실은 빵 먹던 게 그립다 부산대 근처에는 공부하기 좋은 카페가 많은데 그중에서도 내가 자주 갔던 카페드팽 1호점, 2호점 모두 부산대 근처에 있으며 주문을 하고 자리에 앉아있으면 직접 가져다주신다 특히 이 곳은 빵의 퀄리티가 좋기로 유명하다 그러니 빵을 안 시킬 수가 없다 레드벨벳 케이크는 무난 그 자체였고 체리 타르트는 적당히 바삭한 쿠키 식감의 타르트지에 듬뿍 쌓인 크림치즈 위에 체리가 콕콕 박혀있다 체리 타르트 맛있어 레드벨벳은 byebye 어떤 스콘이었는지 기억이 안나는 걸 보니 이 아이도 그저 그랬던 걸로 그렇지만 시나몬 크로플은 서빙될 때부터 느낌이 왔다 맛있을 거야 분명 한입 먹자마자 역시나 만족 진한 버터향과 바삭한 식..
[Python] 18. pandas DataFrame pivot_table : groupby(), sum(), max(), min(), count(), agg(), aggfunc=[] 예제 import pandas as pd import numpy as np import matplotlib.pyplot as plt from matplotlib import rc import matplotlib rc('font', family='AppleGothic') plt.rcParams['axes.unicode_minus'] = False 데이터 불러오기 (pd.read_csv) python 파일 경로에 data폴더 만든 후 다음의 hotel.xlsx 파일 넣어놓기 df = pd.read_csv('data/grade.csv') df g = df.groupby('학년') g.mean() df.info() # pivot_table에서는 수치형 데이터들의 mean 계산(기본) [OUT] : RangeIndex..
[Python] 17. pandas DataFrame groupby : groupby(), sum(), max(), min(), count(), agg()예제 import pandas as pd import numpy as np import matplotlib.pyplot as plt from matplotlib import rc import matplotlib rc('font', family='AppleGothic') plt.rcParams['axes.unicode_minus'] = False 데이터 불러오기 (pd.read_csv) python 파일 경로에 data폴더 만든 후 다음의 hotel.xlsx 파일 넣어놓기 df = pd.read_excel('data/hotel.xlsx',index_col=0) df.head() df['grade'].unique() [OUT] : array([10, 8, 6, 9, 7, 5]) df['grade'].value_c..
[Python] 16. pandas DataFrame 상관관계 : corr(),heatmap()예제 import pandas as pd import numpy as np import matplotlib.pyplot as plt from matplotlib import rc import matplotlib rc('font', family='AppleGothic') plt.rcParams['axes.unicode_minus'] = False 데이터 불러오기 (pd.read_csv) python 파일 경로에 data폴더 만든 후 다음의 crime_in_Seoul.csv 파일 넣어놓기 df = pd.read_csv('data/crime_in_Seoul.csv',index_col=0,encoding = 'euc-kr',thousands = ',') df.head(20) 상관관계 r이 -1.0과 -0.7 사이이면..
부산대 맛집 [코하루] 인생 라멘 추천 내 인생 라멘집 코하루 유명하다는 라멘집 다 제치고 코하루가 원탑 누군가 내게 부산대 맛집 추천해달라고 하면 1순위로 코하루를 말해왔다 외국에 나가 있을 때도 코하루 앓이 엄청했었다 정말 오늘 간 건 아니지만 사진첩을 뒤져 리뷰해봐야지 코하루의 메인 메뉴는 매운 돈코츠 라멘으로 가격은 8,000원이다 맵기 정도는 다음과 같으며 선택할 수 있다 0.5단계 - 신라면 정도 / 1단계 - 얼큰하게 매운맛 / 2단계 - 땀을 쏙 빼는 매운맛 / 3단계 - 눈물 나게 매운맛 나는 1단계는 덜 맵고 2단계는 많이 매워서 메뉴에는 없지만 언제나 1.5단계로 주문한다 적당히 기름지고 매콤한 라멘 국물에 담긴 꼬들꼬들한 면, 숙주나물 듬뿍, 반숙 계란 그리고 토치로 그을려 불향 나는 야들야들한 차슈 3조각까지 맛있다 코하루
[Python] 15. pandas DataFrame 통계&시각화 : sum(), unstack(), mean(), values, min(), idxmax(), median(), quantile(), count(), describe()예제 import pandas as pd import numpy as np import matplotlib.pyplot as plt from matplotlib import rc import matplotlib rc('font', family='AppleGothic') plt.rcParams['axes.unicode_minus'] = False data = {'eng':[10,30,50,70], 'kor':[20,40,60,80], 'math':[90,50,20,70]} df = pd.DataFrame(data, index=['a','b','c','d'] ) df def fn( v ): print("=========") print("v=>",v) print("=========") return v.sum() d..
[Python] 14. pandas DataFrame 통계 : sum(), unstack(), mean(), values, min(), idxmax(), median(), quantile(), count(), describe()예제 import pandas as pd import numpy as np data = {'eng':[10,30,50,70], 'kor':[20,40,60,80], 'math':[90,50,20,70]} df = pd.DataFrame(data, index=['a','b','c','d'] ) df 데이터프레임 통계함수 default(column별), axis=1 (row별) ※ 일반함수들은 default(row별), axis=1(column별) 이므로 주의 ex) df.dropna(axis=1) 은 NaN이 있는 column삭제 df.sum() [OUT] : eng 160 kor 200 math 230 dtype: int64 df.sum(axis=1) [OUT] : a 120 b 120 c 130 d 220 ..
[Python] 13. pandas DataFrame 추가 수정 삭제 검색 정렬 : dropna(subset=[]),fillna(),isna(),sort_values(),sort_index()예제 import pandas as pd import numpy as np data = {'eng':[10,30,50,70], 'kor':[20,40,60,80], 'math':[90,50,20,70]} df = pd.DataFrame(data, index=['a','b','c','d'] ) df 추가 컬럼 추가 df['my1'] =[1,2,3,4] #컬럼이 있으면 수정, 없으면 추가 df['my2'] = df['kor'] + df['eng'] df 행 추가 data = {'eng':[10,30,50,70], 'kor':[20,40,60,80], 'math':[90,50,20,70]} df = pd.DataFrame(data, index=['a','b','c','d'] ) df df.loc['e'] =[1,2..
[Python] 12. pandas DataFrame 연산 : loc(),iloc(),boolean indexing, isin(), query(), f-string formatting 예제 import pandas as pd import numpy as np data = {'eng':[10,30,50,70], 'kor':[20,40,60,80], 'math':[90,50,20,70]} df = pd.DataFrame(data, index=['a','b','c','d'] ) df 산술 연산 df+1 df*2 df['eng'] = [1,2,3,4] df df['eng'] = df['eng'] + 2 df  df.loc['a'] = df.loc['a'] + 2 df df.loc['b':'c','kor':] = [[1,2],[3,4]] df df.loc['b':'c','kor':] = df.loc['b':'c','kor':] +2 df boolean indexing data = {'eng':[1..
후기 | 부산대 샐러드 맛집 [도르샐러드] 나는 샐러드를 정말 좋아한다 캐나다에서 밥 대신 샐러드를 먹다 보니 샐러드를 먹고도 살아진다는 것을 느꼈고 "한국인 = 밥심"이라는 공식이 깨져버렸다 내 기준 부산대 샐러드 최고 맛집 도르샐러드 도르샐러드 베이컨&버섯 샐러드의 가격은 9,800원으로 냉장 베이컨, 양송이, 새송이, 적양배추, 방울토마토, 믹스 치즈, 적청포도, 병아리콩, 적양파, 계란으로 구성된다 바게트 빵 한쪽이 함께 나오며 샐러드드레싱은 따로 주신다 참고로 드레싱은 발사믹 / 허니머스터드 / 유자 / 칠리살사 / 어니언 / 참깨 / 오리엔탈 / 랜치 중 선택 가능 도르샐러드 모듬버섯 샐러드의 가격은 8,900원으로 양송이, 새송이, 적양배추, 쿠스쿠스, 영양부추, 단호박, 방울토마토, 적청포도, 옥수수, 계란으로 구성된다 위와 마찬가..
[Python] 11. pandas DataFrame 인덱싱(Indexing), 슬라이싱(Slicing) 예제 import pandas as pd import numpy as np data = {'eng':[10,30,50,70], 'kor':[20,40,60,80], 'math':[90,50,20,70]} df = pd.DataFrame(data, index=['a','b','c','d'] ) df # df['a'] # df['컬럼명'] df['eng'] [OUT] : a 10 b 30 c 50 d 70 Name: eng, dtype: int64 df[['eng','math']] df['eng']['a':'c'] [OUT] : a 10 b 30 c 50 Name: eng, dtype: int64 df[['eng']] # df[슬라이싱(row)] df[1:3] df df['b':'c'] iloc 인덱싱 슬라이싱(..
[Python] 10. pandas DataFrame 속성 : ndim, shape, len(), size, T, index, keys(), columns, values, dtypes, info() 예제 import pandas as pd import numpy as np data = {'eng':[10,30,50,70], 'kor':[20,40,60,80], 'math':[90,50,20,70]} df = pd.DataFrame(data, index=['a','b','c','d'] ) df df.ndim #몇차원 [OUT] : 2 df.shape #(행, 열) [OUT] : (4, 3) df.shape[0] #행의 갯수 [OUT] : 4 len(df) #행의 갯수 [OUT] : 4 df.size #데이터의 갯수 [OUT] : 4 df.T df.index [OUT] : Index(['a', 'b', 'c', 'd'], dtype='object') df.keys() [OUT] : Index(['eng', ..
[Python] 09. pandas DataFrame import pandas as pd import numpy as np d1 = [[1,2],[3,4],[5,6]] d2 = [(1,2),(3,4),(5,6)] d3 = [{'kor':1,'eng':2}, {'kor':3,'eng':4}, {'kor':5,'eng':6}, ] d4 = {'kor':[1,3,5],'eng':[2,4,6]} df1 = pd.DataFrame(d1, index=['a','b','c'],columns=['eng','kor']) df1 df2 = pd.DataFrame(d2) df2 df3 = pd.DataFrame(d3) df3 df4 = pd.DataFrame(d4) df4 review - DataFrame 만들기
[Python] 08. pandas Series Example : apply(lambda),pd.cut().value_counts().sort_index(),items(),unpacking import pandas as pd import numpy as np import matplotlib.pyplot as plt from matplotlib import rc import matplotlib rc('font', family='AppleGothic') plt.rcParams['axes.unicode_minus'] = False sr = pd.Series( [90,90,55,60,76,80,76,88,30,25], name="국어점수" ) sr.index=['홍길동','이순신','임꺽정','정난정', '이이','이황','정도전','김철수1', '김철수2','김철수3'] sr [OUT] : 홍길동 90 이순신 90 임꺽정 55 정난정 60 이이 76 이황 80 정도전 76 김철수1 88 김철수2..
[Python] 07. pandas Series 통계/시각화 : idxmax(),idxmin(),nlargest(),nsmallest(),quantile(),cut(),to_csv() 예제 import pandas as pd import numpy as np import matplotlib.pyplot as plt from matplotlib import rc import matplotlib rc('font', family='AppleGothic') plt.rcParams['axes.unicode_minus'] = False data = {'aa':10,'bb':20,'cc':30,'dd':40,'ee':50} sr = pd.Series(data, name='국어점수') sr [OUT] : aa 10 bb 20 cc 30 dd 40 ee 50 Name: 국어점수, dtype: int64 sr.idxmax() # numpy에서는 argmax()이고 pandas에서는 idxmax() [OUT]..

728x90
반응형
LIST