데이터 분석/Python - pandas 22

[이론] 데이터 결합, 병합

복수의 Dataframe을 결합해 하나의 데이터세트 생성 1. concat( ) 함수 : 구조적 결합같은 구조의 DataFrame들을 연결같은 컬럼 구조 : 수직으로 연결 (default)같은 로우 구조 : 수평으로 연결 (axis = 1) 행 결합df1 = pd.read_csv('data/리그KDA/lck_2024.csv', encoding='cp949')df1df2 = pd.read_csv('data/리그KDA/lck_2023.csv', encoding='cp949')df2df3 = pd.read_csv('data/리그KDA/lck_2022.csv', encoding='cp949')df3 concat()안에 데이터프레임들이 담긴 리스트를 넣어 순서대로 연결df_cat = pd.concat([df1, ..

[실습] 정보의 처리 : 2024 LCK

1. lck_2024.csv 파일을 데이터프레임으로 로드하여 다음 작업 진행'팀' 컬럼으로 인덱스를 수정내 코드>import pandas as pddf_gm = pd.read_csv('data/lck_2024.csv', encoding = 'cp949')df_g1 = df_gm.set_index('팀')수정 코드>import pandas as pddf_gm = pd.read_csv('data/lck_2024.csv', encoding = 'cp949')df_gmdf_gm.columnsIndex(['이름', '팀', '포지션', '월즈우승', 'lck우승', '나이', '데뷔년도', '리그경기수', '리그승률', '리그KDA', '서머승률', '서머KDA', '리그킬관여율', '서머킬관여율', ..

[이론] 정보의 처리 (전처리 함수들)

pandas는 목적에 따라 다양한 전처리 기능을 제공import pandas as pddf_od = pd.read_csv('data/ObesityDataSet.csv')df_od = df_od.iloc[:10,0:6]df_od 1. rename() 함수 : 인덱스, 컬럼 이름 수정rename()으로 인덱스 변환df_od = df_od.rename({0:'0000', 1:'0001',2:'0002'}, axis=0)df_od▷ 딕셔너리형을 이용(매핑형 구조) : 키(수정할 이름)와 값(수정후 이름) 매핑▷ axis: 변환 축을 선택 0이면 인덱스, 1이면 컬럼  rename()으로 칼럼 이름 변환df_od = df_od.rename({'family_history_with_overweight' : 'Fami..

[실습] 데이터 집계 : 2024 LCK

1. lck_2024.csv 파일에서 0번 열을 인덱스로 하여 데이터프레임으로 로드import pandas as pddf_gm = pd.read_csv('data/lck_2024.csv', encoding='cp949', index_col=0)df_gm  2. '리그KDA' 컬럼과 '서머KDA' 컬럼을 더해 2로 나눈 값을 '평균KDA' 컬럼으로 추가df_gm['평균KDA']=(df_gm['리그KDA']+df_gm['서머KDA'])/2df_gm  3. 팀 컬럼으로 그룹화 하여 그룹별 데뷔년의 평균을 산출group_tm = df_gm.groupby(by='팀', as_index=False)['데뷔년도'].mean()group_tm  4. 포..

[이론] 데이터 집계 (그룹화)

pandas를 사용하는 이유쉽고 직관적인 데이터 처리: 복잡한 데이터 작업을 간단한 명령으로 처리가능데이터 변환과 분석: 데이터 필터링이나, 새로운 열 추가, 통계 계산 등의 작업을 효율적으로 수행결측치 처리: 데이터셋에 포함된 결측치를 쉽게 제거하거나 채울 수 있음다양한 데이터 소스 지원: CSV, Excel, SQL 등 다양한 형식의 데이터를 읽고 쓸 수 있음시각화 라이브러리와 연계: matplotlib나 seaborn 같은 라이브러리와 결합해서 데이터를 시각화하기 좋음 ★ pandas 집계 함수size : 관측치 개수count : 결측치를 제외한 관측치 개수max: 최댓값min: 최솟값mean : 평균median : 중앙값sum : 총합std : 표준편차var : 분산quantile: 샘플 분위수(..

[실습] 조건 활용 인덱싱 (필터링) : LOL 아이템

lol_item.csv 파일에서 다음 작업 수행 1. buy_price가 500 이상인 데이터만 인덱싱내 코드>import pandas as pddf_lol=pd.read_csv('data/lol_item.csv')greater = df_lol['buy_price'] > 500df_lol[greater]풀이 코드>price500 = df_lol['buy_price']>=500df_lol[price500]▶ 이상일때는 >가 아닌 >= 사용하기  2. 태그의 고유 항목 출력df_lol['태그'].unique() #시리즈로 가져오기array(['장화', '마나재생', '체력재생', '체력', '치명타피해', '마법피해', '마나', '방어력', '마법저항', '공격', '생명력 흡수', '공격속도..

[이론] 조건 활용 인덱싱 (필터링)

원하는 관측치 선택하기수많은 관측치에서 데이터분석할때, id값을 직접적으로 설정하기보다는관측치가 가지고있는 특징으로 원하는관측치를 찾아오는, 즉 필터링 과정을 거쳐야 함 DataFrame에선 bool형식의 데이터 추출 가능 1) 데이터 가져오기import pandas as pddf_gp=pd.read_csv('data/건강보험심사평가원.csv', encoding='CP949', index_col=2, header=2)df_gp 2) 데이터프레임 내부 데이터 정보 확인하기: 정보들을 확인해야 조건을 줄 수 있음 unique(): 범주형 데이터에 접근 dataframe이 아닌 series인스턴스에서 쓰는 함수: ..

[실습] 데이터 불러오기, 데이터 인덱싱 : LOL 아이템

1. data 폴더의 lol_item.csv 파일을 0번 열을 인덱스로 지정하여 데이터프레임으로 변수에 할당import pandas as pddf_lol = pd.read_csv('data/lol_item.csv', index_col=0)2. 읽어온 데이터프레임의 모든 컬럼을 출력하기df_lol.columnsIndex(['name', 'upper_item', 'explain', 'buy_price', 'sell_price', 'tag', '이름', '설명', '태그'], dtype='object')▶ columns에 ()안붙이면 self변수3. 읽어온 데이터프레임의 모든 인덱스 출력하기df_lol.indexIndex([1001, 1004, 1006, ..

[이론] 데이터타입 확인, []연산 데이터 인덱싱

★ 데이터타입 확인하기colum안의 데이터들은 타입이 동일해야 함 → column의 데이터타입 확인 필요 연속형(시퀀스형)- float64 : 실수- int64 : 정수- datetime64[ns] :; 날짜시간 (python datetime) 비연속형- bool : true or false- category : 범주형- object : 문자열 or 그 외  보통은 크게 숫자형/범주형 으로 나눠서 접근함분석면에서 수치형(정수,실수) 범주형(범주형,문자열), 날짜형으로 구분하는것이 중요  변수 형식 확인하기df_gp.dtypes팀 object포지션 object월즈우승 int64lck우승 int64나이 int64데뷔년도 ..