Titanic 데이터셋을 사용하여 그룹화(GroupBy) 연산과 다양한 데이터 변환(transformation)을 수행하는 방법을 알아보자. 우선 간단하게 titanic 데이터셋을 확인해 보자.titanic.head() groupby로 성별과 클래스로 묶어주고, 나이와 요금의 평균 구하기데이터프레임에서 GroupBy 연산을 통해 특정 기준으로 데이터를 그룹화할 수 있다.예를 들어, 성별(Sex)과 탑승 클래스(Pclass)를 기준으로 그룹화한 후, 각 그룹의 나이(Age)와 요금(Fare)의 평균을 계산해 보자.titanic.groupby(['Sex', 'Pclass'])[['Age', 'Fare']].mean() titanic.groupby(['Sex', 'Pclass']):titanic 데이터프레임..
분류 전체보기
loc[], iloc[].loc[]: 행 이름과 열 이름을 사용DataFrame 객체.loc[행 이름, 열 이름].iloc[]: 행 번호와 열 번호를 사용DataFrame 객체.iloc[행 번호, 열 번호]titanic.head()로 출력한 결과 loc[]import pandas as pd# .loc[] 예제names35 = titanic.loc[titanic['Age'] > 35, ['Name', 'Age']]names35.head() 코드 설명titanic['Age'] > 35: 이 부분은 조건을 설정해 준다. titanic 데이터프레임의 Age 열에서 35보다 큰 값을 가지는 행들을 선택한다. 이 조건은 불리언 시리즈를 반환한다. ['Name', 'Age']: 이 부분은 선택할 열 이름들을 지정한..
인덱싱# a 배열 생성 & 출력a = np.arange(10)**2print(a)>>> [ 0 1 4 9 16 25 36 49 64 81]# a 배열의 2번째 인덱스 출력print(a[2])>>> 4# a 배열의 2~4번 인덱스 출력print(a[2:5])>>> [ 4 9 16]# reverse : 배열의 요소 거꾸로 출력print(a[: : -1])>>> [81 64 49 36 25 16 9 4 1 0]# 0~5번에서 2Step 인덱스 출력# a[0:6:2] = a[:6:2]# 인덱스 0, 2, 4 해당하는 값에 1000 삽입a[0:6:2] = 1000print(a)>>> [1000 1 1000 9 1000 25 36 49 64 81] 인덱스 배열로 인덱싱# ..
자동 형 변환numpy에서 수치연산 진행할 때 각각의. dtype이 다르면, 타입이 큰쪽(int 된다.# a와 b 배열 생성 & 타입 확인a = np.ones(3, dtype=np.int32)b = np.linspace(0, np.pi,3)print(a)print(b)print(a.dtype)print(b.dtype)>>> [1 1 1]>>> [0. 1.57079633 3.14159265]>>> int32>>> float64 a(int), b(float) 연산 시 float로 upcasting 된다.c = a + bprint(c)print(c.dtype)>>> [1. 2.57079633 4.14159265]>>> float64 집계 함수.sum: 모든 요소의 합.min: 모든..
arange & linspacenp.arange: N만큼 차이 나는 숫자를 생성해 준다.np.linspace: N 등분한 숫자를 생성해 준다.np.arange([start], stop, [step]..)[]는 생략 가능하다.끝 값은 포함하지 않는다.np.linspace(start, stop, num=50..)처음 값과 끝 값을 포함한다,몇 개로 만들지 매개변수로 넘겨준다. 예제 코드# 10이상 30미만 까지 5씩 차이나게 생성print(np.arange(10,30,5))>>> [10 15 20 25]# 0이상 2미만 까지 0.3씩 차이나게 생성print(np.arange(0,2,0.3))>>> [0. 0.3 0.6 0.9 1.2 1.5 1.8]# 0~99까지 100등분x = np.linspace(0, ..
데이터 압축이 필요한 이유?데이터 전송 시 대용량 데이터는 전송 속도가 느리며, 전송 문제가 발생할 가능성이 높다.데이터 압축의 종류무손실 압축 : 데이터 손실이 전혀 없는 압축손실 압축 : 사람이 눈치채지 못할 수준의 정보만 버리고 압축하는 방법. 대신 무손실 압축보다 압축률을 높일 수 있다.압축률 : 원시 자료량 (원래 데이터 크기) / 압축된 자료량 (압축된 데이터 크기)다양한 압축 알고리즘에 따라 압축 성능 및 시간이 좌우된다.압축 : 인코딩 (Encoding)압축 해제 : 디코딩 (Decoding) 런 - 길이 부호화 (Run-Length Encoding)대표적인 무손실 압축 방법이다. AAAABBBBBCCCCCCCCDEEEE라는 문자열을4(번의) A5(번의) B8(번의) C1(번의) D4(번의..
glob파일을 찾을 때 자주 사용되는 모듈이다. 파일 탐색기에서 파일을 탐색하듯, 파이썬 코드에서 파일을 탐색할 수 있는 게 glob 모듈이다. glob는 패턴을 이용하여 파일을 검색할 때 사용하는 모듈이고 여기서 패턴이라 하면, 파일이 어떤 특징을 갖는지, 뭐 어떤 확장자를 갖는지, 특정 단어가 포함된 파일을 찾는다거나 이런 패턴을 말한다. 파일 확장자로 찾기import globimport os# 현재 디렉토리 확인os.getcwd()>>> '/Users/yijun/study/workspace/python/library/ch04. [파일디렉터리] 업무효율 향상을 위한 폴더 관리 프로그램 만들기'# txt 파일 찾기 - 현재 경로for filename in glob.glob("*.txt"): pr..
Pickle 모듈은 파이썬 객체를 직렬화(serialize)하여 파일로 저장하고, 나중에 다시 불러올 수 있게 해주는 유용한 도구다. 이 과정을 통해 파이썬 프로그램의 상태를 지속적으로 유지할 수 있으며, 특히 모델 학습 결과나 복잡한 데이터 구조를 저장하는 데 활용된다. 그러나 pickle은 대용량 데이터 처리에는 적합하지 않으며, 대용량 데이터는. txt,. csv,. json 형식으로 저장하는 것이 더 효율적이다. Pickle 기본 개념영속성(persistence)파이썬 객체는 메모리에 상주하며, 파이썬 인터프리터가 종료되면 메모리와 함께 사라진다. Pickle은 이러한 객체들을 파일에 저장하여 프로그램 종료 후에도 데이터를 유지할 수 있게 한다. 직렬화(Serialization)Pickle 모듈을..