목록Python/기초 (24)
DevSSOM
df.groupby() 간단한 집계를 넘어서서 조건부로 집계하고 싶은 경우, groupby 함수를 활용. groupby() 함수를 이용하면 키 값을 기준으로 그룹으로 묶을 수 있음. groupby() 함수의 사용 예시를 들자면, 시험 성적 데이터에서 각 반을 그룹으로 묶어 각 반의 평균 점수를 구할 수 있음. import numpy as np import pandas as pd df = pd.DataFrame({ 'key' : ['A', 'B', 'C', 'A', 'B', 'C'], 'data1' : [1, 2, 3, 1, 2, 3], 'data2' : [4, 4, 6, 0, 6, 1] }) # 데이터프레임 DataFrame: key data1 data2 0 A 1 4 1 B 2 4 2 C 3 6 3 A..
집계함수 집계함수는 많은 데이터 값을 입력으로 받아 이를 요약하는 하나의 값을 반환하는 기능을 하는데, count(), max(), min(), sum(), mean() 등의 함수들을 위와 같은 집계함수라고 함. - df.count() count 메소드를 활용해서 데이터 개수를 확인할 수 있음 (디폴트는 NaN값 제외) data = { 'korean' : [50, 60, 70], 'math' : [10, np.nan, 40] } df = pd.DataFrame(data, index = ['a', 'b', 'c']) # df 결과값 korean math a 50 10.0 b 60 NaN c 70 40.0 # 각 컬럼별 데이터 개수 df.count(axis = 0) # 열 기준으로 카운트 # 결과값 kore..
데이터프레임 정렬하기 데이터를 처리하다 보면 일정한 기준에 맞추어 정렬하는 일이 빈번하게 발생함. pandas에서도 데이터를 필요에 맞게 정렬할 수 있음. 인덱스값 기준으로 정렬하기 sort_index() 함수를 사용. axis = 0 : 행 인덱스를 기준으로 정렬 (디폴트는 오름차순 ascending = True) df = df.sort_index(axis = 0) axis = 1 : 열 인덱스(컬럼)를 기준으로 정렬 (내림차순 ascending = False) df = df.sort_index(axis = 1, ascending = False) 컬럼값 기준으로 정렬하기 sort_values 함수를 사용. col1 컬럼 기준으로 오름차순 정렬 df.sort_values('col1', ascending ..
데이터 선택하기 1. 인덱싱 / 슬라이싱 데이터프레임이나 시리즈 데이터에서 데이터를 찾는 방법은 두 가지가 있음. loc : 명시적 인덱스를 참조하는 함수. 쉽게 말하면, 데이터프레임에 어떤 인덱스가 있는지 알고 딱 이름을 넣어서 걔만 빼오는 거야. loc는 location의 약자. iloc : 암묵적인 인덱스를 참조하는 함수. 인덱스 값이 뭔지 모를 때, '아... 그그 첫번째 인덱스 있잖아? 그거 빼와.' 해서 빼오는 거. 학교 선생님들이 반에서 몇 번 불러서 발표시키는 것처럼. # Country DataFrame population gdp korea 5180 169320000 japan 12718 516700000 china 141500 1409250000 usa 32676 2041280000 co..
데이터프레임 (DataFrame) 여러 개의 Series가 모여서 행과 열을 이룬 데이터. 시리즈 데이터는 하나의 컬럼 값으로 이루어진 반면 데이터 프레임은 여러 개의 컬럼 값을 가질 수 있음. 데이터프레임 만들기 1) 딕셔너리 -> 시리즈 -> 데이터프레임 cf. 시리즈를 만들 때 꼭 딕셔너리로 먼저 만들어야 되는 건 아님. Series([1, 2, 3, 4]) 이렇게 바로 시리즈로 만들 수도 있음. import pandas as pd # 딕셔너리 -> 시리즈 데이터로 만들기 population_dict = { 'korea' : 5180, 'japan' : 12718, 'china' : 141500, 'usa' : 32676 } population = pd.Series(population_dict) g..
Pandas? : 파이썬 라이브러리로, 구조화된 데이터를 효과적으로 처리하고 저장함. Array 계산에 특화된 Numpy를 기반으로 설계됨. Series 데이터 Numpy의 array가 보강된 형태. 데이터와 인덱스를 가지고 있음. 특수한 딕셔너리라고 생각하면 쉬움. import pandas as pd data = pd.Series([1, 2, 3, 4]) print(data) # 0 1 # 1 2 # 2 3 # 3 4 # dtype: int64 print(type(data)) # print(data.values) # [1 2 3 4] print(type(data.values)) # 앞에 세로형으로는 인덱스가 있고 그 다음에 데이터가 있음. 데이터 1, 2, 3, 4 의 앞열에 인덱스 0, 1, 2, 3..
인덱싱과 슬라이싱 : 각각 찾고, 잘라내는 것 인덱싱 (Indexing) : 인덱스로 값을 찾아내는 것. import numpy as np x = np.arange(7) print(x) # [0 1 2 3 4 5 6] print(x[3]) # 3 print(x[7]) # IndexError : index 7 is out of bounds x[0] = 10 print(x) # [10 1 2 3 4 5 6] import numpy as np x = np.arange(1, 13, 1) # 1부터 12까지, 1씩 증가하는 배열 x.shape = 3, 4 print(x) # [[ 1 2 3 4] # [ 5 6 7 8] # [ 9 10 11 12]] print(x[2, 3]) # 12 슬라이싱 (Slicing) :..