본문 바로가기

Python

(28)
[Python] 판다스(pandas)_10. read_sql - pandas 함수로 sql문 읽어오기 #정리 ** cs.executemany(sql,lst) #여러개의 데이터가 있는 리스트로 한 번에 더미값 넣기 #22read_sql - pandas 함수로 sql문 읽어오기 > cursor 초기화 >> 체이블 생성 > #import sqlite3 #1.connect : "파일명.db"에 커넥션을 맺겠다. - con = sqlite3.connect("py22test.db") #2. cursor init : pstmt 초기화 - cs = con.cursor() #3. create table : 쿼리문 작성 - 뎁스 상관없음 - cs.execute('''create table if not exists test (num integer primary key autoincrement,name text,age int..
[Python] 판다스(pandas)_9. 웹 데이터 추출(read_xml, read_html, BeautifulSoup) #정리 **트리(tree) : 하나의 원점에서 출발하여, 하위 노드들이 여러 계층을 이루며 뻗어나가는 자료 형태를 비선형적 자료 구조. #19readxml - xml코드 데이터 추출 # url 접속 후, xml(앨범 더미정보) 불러오기 # xml 데이터 추출(ElementTree 라이브러리로 읽어들이기) ** DataFrame.read_xml( )로 읽어 올 수도 있지만, 강사님은 별도의 방법으로 데이터 재정리 - import xml.etree.ElementTree as ET - 데이터 추출 및 데이터 프레임으로 변경 #20read_html - html코드 속 데이터 추출 # url 접속 후, html(웹페이지 정보) 불러오기 # 웹페이지 데이터 추출(표 데이터 읽어들이기) ** DataFrame.rea..
[Python] 판다스(pandas)_8. 파일 쓰기/읽기 (CSV, EXCEL, JSON) #정리 #13to_csv - csv파일 작성하기 #csv : ,를 구분자로 하는 파일 #csv 파일 생성 - df_emp.to_csv('pd13a.csv',sep=',') #index,header(column)포함 저장 - df_emp.to_csv('pd13b.csv',sep=',',index=False) #index제거 - df_emp.to_csv('pd13c.csv',sep=',',index=False,header=False) #index,header제거 #전치를 통해 컬럼별로 데이터를 모아둘 수 있다. - df_emp.T.to_csv('pd13d.csv',sep=',',index=False,header=False) #tap(\t)을 구분자로 지정(.tsv)하여 저장할 수 있다. - df_emp.to..
[Python] 판다스(pandas)_7.pivot - 데이터프레임 재구성 #정리 #12pivot - 데이터프레임 입맛에 맞게 재구성하기 #데이터의 재구조화 : 분석 대상이 분석 기법에 맞지 않을 때, 행 열의 위치를 바꾸거나 구조를 바꾸는 경우를 말함. #데이터 재구조화 방법 4가지 #컬럼을 인덱스로 지정할 수 있다. - print(df.set_index(['year'])) - print(df.set_index(['location','year'])) #인덱스가 여러개 올 수 있다. #set index([column,...]).unstack() : index를 x축, y축으로 펼쳐주어, 아래의 피봇과 같은 결과가 나온다. - print(df.set_index(['location','year']).unstack()) - print(df.set_index(['location','y..
[Python] 판다스(pandas)_7.concatenate - 데이터프레임 병합, groupby - 데이터 그룹바이 #정리 #10concatenate - 데이터프레임 병합 #(넘파이)np.concatenate([df1,df2]) - print(np.concatenate([df1,df2])) - print(np.concatenate([df2,df3],axis=1)) #(판다스)pd.merge(df1,df2) ** inner join 형태는 공통 컬럼(key)가 있을 때, 병합 가능 - print(pd.merge(df1,df2,on='key',how='inner')) #양측 다 있는 key(a,b)로만 조인 - print(pd.merge(df1,df2,on='key',how='outer')) #full outer - print(pd.merge(df1,df2,on='key',how='left')) #left outer (좌..
[Python] 판다스(pandas)_6.operator - 연산자, function - 데이터 프레임 함수 #정리 #08operator - 연산자 #DataFrame 연산함수(add,sub,mul,div) - sum_df = df01 + df02 - add_df = df01.add(df02,fill_value=0) - sub_df = df01.sub(df02,fill_value=0) - mul_df = df01.mul(df02,fill_value=0) - div_df = df01.div(df02,fill_value=0) #DataFrame 데이터 값 일괄 변경 연산 (broadcasting) - print(df01 + 100) - print(df01 - 100) - print(df01 * 100) - print(df01 / 100) #(활용)모든 셀에 서울 [11 12 13] 값을 활용하여 연산 - print..
[Python] 판다스(pandas)_5. df_sort - 인덱스, df_boolean - 조건식 데이터 추출, drop - 열, 행 삭제 #정리 #05df_sort - 인덱스 / 컬럼명 정렬, 특정 컬럼 기준 값 정렬 #sort_index() : 인덱스와 컬럼에대한 정렬 기능 - ex. order by rownum desc - 인덱스 기준 - 오름차순 정렬이 기본 값 - print(df.sort_index()) #인덱스를오름차순 - df.sort_index(axis=0,ascending=True) #인덱스를 오름차순(default) - print(df.sort_index(axis=0,ascending=False)) #DESC : 인덱스를내림차순 - print(df.sort_index(1)) #컬럼명이오름차순 - print(df.sort_index(axis=1)) #컬럼명이 오름차순 - print(df.sort_index(axis=1,asc..
[Python] 판다스(pandas)_4.데이터프레임 속 시리즈(df_Series), indexing, slicing, transpose, values #정리 #04df_Series - 데이터프레임에서 컬럼(시리즈) 추출 #df[0:3] slicing : 데이터 프레임 자체에도 슬라이싱이 가능하다. - print(df[:3]) - print(df[3:]) - print(df[3:6]) - print(df[3:len(df)]) #df.loc[[0,3]] indexing : 데이터 프레임 자체에도 슬라이싱이 가능하다. **print(df[[0,3]]) #error - 데이터프레임은 loc를 붙여줘야한다. - print(df.loc[[0,3]]) #OK #df['column name'] : Series 타입으로 특정 컬럼의 데이터 추출 가능 - print(df['emp_id']) / print(df.emp_id) #두 가지 방법 모두 가능하다. #다양한 방법..
[Python] 판다스(pandas)_3. 딕셔너리(dict), set_index, indexing, slicing, OrderedDict #정리 #03dict - 딕셔너리를 활용하여 데이터프레임을 다룬다. #데이터 프레임은 dict 타입으로 생성하며, 데이터는 list,tuple type만 사용 가능, set type X - emp = {'emp_id':[100,101,200,201,300,400], , ,} #전체 데이터 확인 (select * from emp) - print(pd.DataFrame(emp)) # pd.DataFrame(emp).info() : 데이터 정보 확인 - print(pd.DataFrame(emp).info()) #pd.DataFrame(emp).set_index('emp_id') : 컬럼을 인덱스로 지정 : 중복 값이 없어야 한다. - print(pd.DataFrame(emp).set_index('emp_id'..
[Python] 판다스(pandas)_2. 인덱스 변경(reindex) #정리 #02reindex - 인덱스 재설정, 빈 값 채우기 #기존에 없는 인덱스로 변경: index['A','B','C'] >> index[1,2,3] - 인덱스 변경 뒤, index 매칭이 안되는 데이터는 NaN으로 표기됨. >> col = col.reindex([i for i in range(65,65+5)]) #기존 인덱스의 순서를 변경 :index['A','C','B'] >>index['A','B','C'] - 기존에 있는 인덱스의 순서만 변경되면, 변경된 인덱스 순서에 맞춰 값도 같이 움직인다. - 새로 추가되어 매친되는 값이 없는 인덱스는 데이터가 NaN으로 표기됨. >> col = col.reindex(['A','B','C','D','E']) - fill_value : 새로운 인덱스의 경우..