본문 바로가기

728x90
반응형
SMALL

NumPy

(21)
[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] 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] 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..
[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] 06. pandas Series 문자열 데이터 검색 : str.contains(),str.replace(),정규표현식메타기호 예제 import pandas as pd import numpy as np sr = pd.Series(['홍길동','이순신','김철수','김순이', '이홍김'] ) sr.index=['aa','bb','cc','dd','ee'] sr [OUT] : aa 홍길동 bb 이순신 cc 김철수 dd 김순이 ee 이홍김 dtype: object # 데이터가 문자열 시리즈객체의 str속성을 이용한다. # sr.index.str # 문자열 index sr.str # 데이터가 문자열 문자열 인덱싱 슬라이싱 sr.str[0] # 성만 가져오기 [OUT] : aa 홍 bb 이 cc 김 dd 김 ee 이 dtype: object sr.str[1:] [OUT] : aa 길동 bb 순신 cc 철수 dd 순이 ee 홍김 dtype: o..
[Python] 05. pandas Series 추가,수정,삭제,검색,정렬 : loc(),drop(),append(),inplace=True예제 import pandas as pd import numpy as np 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 CRUD Create : 생성 Read : 읽기 Update : 갱신 Delete : 삭제 추가 & 수정 sr[0] = 100 # sr['aa'] = 100 # sr.loc['aa'] = 100 # sr.iloc[0] = 100 sr[1:3] = [1,2] # sr.iloc[1:3] = [1,2] # sr['bb':'cc'] = [1,2] # sr.loc['bb':'cc'..
[Python] 04. pandas Series 연산 : 산술관계논리(element wise),isin(),between()예제 import pandas as pd import numpy as np 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.index [OUT] : Index(['aa', 'bb', 'cc', 'dd', 'ee'], dtype='object') 산술관계논리(element wise) sr+1 [OUT] : aa 11 bb 21 cc 31 dd 41 ee 51 Name: 국어점수, dtype: int64 sr*2 [OUT] : aa 20 bb 40 cc 60 dd 80 ee 100 Name:..
[Python] 03. pandas Series 인덱싱(Indexing),슬라이싱(Slicing) : boolean indexing,loc()과 iloc() 차이 예제 import pandas as pd import numpy as np 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[0] # sr의 제일 처음 값 가져오기 [OUT] : 10 sr[-1] # sr의 제일 마지막 값 가져오기 [OUT] : 50 sr['aa'] # sr.aa -> 가능하지만 권장하진 않음. 속성명과 인덱스가 중복될 수 있으므로. [OUT] : 10 sr['cc'] [OUT] : 30 sr[[0,2,3]] [OUT] : aa 10 cc 30 dd 40 Name:..
[Python] 02. pandas Series 속성 : Series(),dictionary,index,dtype,ndim,shape,size,name예제 import pandas as pd import numpy as np 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.dtype [OUT] : dtype('int64') sr.ndim # 몇 차원 [OUT] : 1 sr.shape # 벡터와 같은개념. 튜플 [OUT] : (5,) sr.size # 전체 데이터의 개수 [OUT] : 5 sr.name [OUT] : '국어점수' print(sr.index) print(type(sr.index)) # index..
[Python] 01. pandas Series 만들기 : pd.Series()예제 import pandas as pd import numpy as np # 1차원 데이터 myList = [10,20,30,40] # 리스트 t = (10,20,30,40) # 튜플 d = {'aa':10,'bb':20,'cc':30} # 딕셔너리 판다스의 핵심 Series : 1차원데이터 DataFrame : 2차원데이터(이상) 시리즈 예제 sr1 = pd.Series(myList,index=['aa','bb','cc','dd'], dtype=np.int32, name='kor' ) sr1 [OUT] : aa 10 bb 20 cc 30 dd 40 Name: kor, dtype: int32 sr2 = pd.Series(t) sr2 [OUT] : 0 10 1 20 2 30 3 40 dtype: int64 s..
[Python] 07. numpy 종합 예제 : matplotlib,시각화,np.loadtxt(),plt.show(),np.array(),zip(),np.quantile() import numpy as np 데이터 불러오기 (np.loadtxt) python 파일 경로에 data폴더 만든 후 다음의 births.txt 파일 넣어놓기 birth = np.loadtxt( 'data/births.txt', delimiter=',', dtype=np.int64) # data폴더 안의 births.txt파일 ','로 구분하여 load하기 birth.shape # 132행 3열 [OUT] : (132, 3) birth # 연도, 남아수, 여아수로 구성되어있음 [OUT] : array([[ 1880, 90993, 110491], [ 1881, 91954, 100745], [ 1882, 107850, 113688], [ 1883, 112321, 104629], [ 1884, 129022,..
[Python] 06. numpy 2차원 데이터 : boolean indexing,vstack(),hstack(),axis=0,axis=1예제 import numpy as np data = np.array( [ [1,2,3],[7,5,2],[10,1,8],[6,3,4] ] ) data [OUT] : array([[ 1, 2, 3], [ 7, 5, 2], [10, 1, 8], [ 6, 3, 4]]) 2차원 데이터 인덱싱(indexing), 슬라이싱(slicing) 예제 data.shape [OUT] : (4, 3) data.reshape(-1,2,2) # [면,행,열], -1은 알아서 설정하라는 의미 [OUT] : array([[[ 1, 2], [ 3, 7]], [[ 5, 2], [10, 1]], [[ 8, 6], [ 3, 4]]]) data # 위에서 reshape을 했지만 data에 담지 않았으므로 바뀌지 않음 [OUT] : array([[ ..
[Python] 05. numpy 통계 : argmin(), std(), median(), quantile(),sum(),max(),zip()예제 import numpy as np arr = np.array([22,11,33,44,55]) numpy의 통계 함수 argmin() std() median() quantile() 통계 함수 예제 arr.argmin() # arr중 가장 작은 값의 인덱스 반환 [OUT] : 1 arr.std() # arr의 표준 편차 반환 [OUT] : 15.556349186104045 np.median(arr) #데이터를 정렬했을때 가운데 값 [OUT] : 33.0 np.quantile(arr,[0.25,0.5,0.75]) # arr의 제 1사분위수(0.25), 중앙값(0.5), 제 3사분위수(0,75) 값을 반환 [OUT] : array([22., 33., 44.]) 연습문제 kor = np.array( [60,55,..
[Python] 04. numpy 추가,수정,삭제,정렬 : append(),insert(),where(),select(),delete(),sort()예제 import numpy as np 추가 append() insert() 추가 예제 arr = np.array([11,22,33,44,55]) arr [OUT] : array([11, 22, 33, 44, 55]) arr = np.append(arr,[100,200]) arr [OUT] : array([224, 335, 100, 200]) np.insert(arr,1,[1,2]) [OUT] : array([ 11, 1, 2, 22, 33, 44, 55, 100, 200]) arr [OUT] : array([ 11, 22, 33, 44, 55, 100, 200]) # np.insert()했지만 arr이 수정된 것은 아님을 알 수 있음 arr = np.insert(arr,1,[1,2]) # np.insert(..
[Python] 03. numpy 인덱싱(Indexing),슬라이싱(Slicing) : boolean indexing, np.array()예제 import numpy as np arr = np.array([11,22,33,44,55]) arr [OUT] : array([11, 22, 33, 44, 55]) 인덱싱(indexing) arr[0] [OUT] : 11 arr[-1] [OUT] : 55 arr[[0,2,3]] # 복수개의 인덱스 선택 [OUT] : array([11, 33, 44]) Boolean indexing (element-wise) arr[[True,True,False,False,True]] [OUT] : array([11, 22, 55]) arr>30 [OUT] : array([False, False, True, True, True]) arr[arr>30] [OUT] : array([33, 44, 55]) 슬라이싱(slicin..
[Python] 02. numpy 속성 변환 함수 : astype(),reshape(),dtype예제 import numpy as np numpy.array의 핵심 속성 array() dtype size shape ndim .T 핵심 속성 예제 #1 arr = np.array([11,22,33,44,55]) # arr이라는 array 생성 arr [OUT] : array([11, 22, 33, 44, 55]) arr.dtype [OUT] : dtype('int64') arr.size [OUT] : 5 arr.shape [OUT] : (5,) arr.ndim [OUT] : 1 arr.T # arr == arr.T [OUT] : array([11, 22, 33, 44, 55]) 핵심속성 예제 #2 arr1 = np.array([[11,22],[33,44],[55,66]]) # arr1이라는 array 생성 ..
[Python] 01. numpy 객체 생성 : array(),ones(),zeros(),eye(),random.rand(),choice()예제 import numpy as np numpy : 리스트의 확장판 (데이터 연산, 통계분석) pandas : numpy의 확장판 용어 정리 scalar : 상수값(10,3.14,'korea') vector(1차원) : [10,20,30] matrix(2차원) : [[10,20,30],[100,200,300]] 2X3 3차원 : [[[10,20,30],[100,200,300]],[[10,20,30],[100,200,300]]] 2X2X3 ndarray 생성 방법 #1 arr1 = np.array([10,20,30]) print(type(arr1)) print(arr1) arr1 [OUT] : [10 20 30] array([10, 20, 30]) arr2 = np.array([[10,20,30],[100,2..
[Python 실습] 부산광역시 세금 데이터 분석 : groupby(),idxmax(),unstack(),fillna() 데이터 전처리/시각화 부산광역시 세금 데이터 불러오기 taxDF = pd.read_csv('data/부산광역시_부산시인터넷지방세청(사이버지방세청)_지방세등 납부현황_20200630.csv', thousands=',',encoding='euc-kr') taxDF = pd.DataFrame(taxDF) # taxDF의 컬럼에 공백이있어 공백 제거 작업 colList = [] for col in taxDF.columns: colList.append(col.strip()) taxDF.columns = colList taxDF.head(15) 1. 납부년도에 따른 기관별 최대 건수의 납부금액 시각화 # 연도별 데이터프레임 구축 li = taxDF['납부년도'].unique().tolist() taxList = [] for i in r..

728x90
반응형
LIST