SKT FLY AI/빅데이터 & 인공지능
Big Data with Python 1 : Pandas와 Numpy
✿(๑❛ڡ❛๑)✿
2024. 6. 27. 19:52
728x90
SMALL
Numpy
파이썬에서 수치 계산을 위한 핵심 라이브러리
다차원 배열을 효율적으로 다룰 수 있으며, 다양한 수학적 연산가능
!pip install numpy # numpy 설치
import numpy as np # numpy 패키지를 np로 불러오기
arr=np.array([1,2,3,4])
배열은 넘파이의 핵심 객체로 파이썬 리스트와 비슷하게 데이터를 모아 저장하는 자료구조
# numpy 활용
print(np.arange(1,10,2)) # 1부터 10이전까지 2씩 증가하는 배열 만들기
print(np.ones((3,2,4))) # 1로 채워진 2*4*3 배열 만들기
print(np.zeros((2,4))) # 0으로 채워진 2*4 배열 만들기
print(np.full((2,3),5)) # 5로 채워진 2*3 배열 만들기
print(np.empty((3,2))) # 초기화되지 않은 배열 만들기
#삼각행렬
print(np.tril([[1,2,3],[4,5,6],[7,8,9]])) # 하삼각행렬 만들기
print(np.triu([[1,2,3],[4,5,6],[7,8,9]])) # 상삼각행렬 만들기
print(np.eye(3)) # 단위행렬 만들기
print(np.random.random((2,4))) # 2*4의 균일한 분포를 갖는 난수 반환
np.random.randint(1,10,size=(2,4)) # 2*4의1~9사이의 값을 갖는 난수 반환
# 이차원 리스트
my_arr2=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])
print(my_arr2[1:3]) #파이썬 리스트 슬라이싱
print(my_arr2[:-1])
print(my_arr2[::2])
print(my_arr2[:,-1])
print(my_arr2[1:3])
Pandas
파이썬에서 데이터처리와 분석을 위한 가장 인기있는 라이브러리
pandas를 이용하면 데이터를 쉽게 조작하고 분석 가능
DataFrame라는 테이블 형태의 데이터를 처리
CSV(형식을 가지지 않은 파일), 엑셀 등 다양한 형식의 데이터를 불러오거나 내보내는 기능을 제공
대용량 데이턷을을 처리하는데 매우 편리
- 자료구조
Series : 1 차원
DataFrame : 2차원
Panel : 3차원
!pip install pandas # pandas 설치
import pandas as pd # 라이브러리 import
결측치 확인 및 처리
결측치는 데이터가 없는 경우나 없는것을 다른 기호로 표시해 놓은 값(ex) nan)을 말한다.
- isna(), isnull() 함수
결측치인지 아닌지를 True, False로 표현 - dropna()
결측치가 포함된 행을 삭제 - fillna()
결측치를 특정 값으로 변경
# 특정 컬럼의 결측치만 설정 ('Weight'컬럼의 결측치를 'Weight'컬럼의 평균으로 변경)
m = df['Weight'].mean()
print('mean :', m)
df['Weight'].fillna(m, inplace=True)
re = df.dropna(inplace=True) #inplace를 True로 설정하여 원본 df 변경 (default는 False)
인덱싱과 슬라이싱
- Indexing
데이터 프레임의 특정 위치의 요소에 접근 - Slicing
특정 부분의 데이터들을 추출
loc와 iloc사용
df.loc[2:4] # 2행 ~ 4행까지 모든 컬럼의 데이터 추출
df.loc[2:4, ['Name', ‘Weight’] ]# 2행~4행까지 ‘Name’과 ‘Weight’ 컬럼의 데이터만 추출
df.loc[2:4, ‘Weight’]# 하나의 컬럼만 추출
#조건에 맞는 행만 추출(는 'Rate' 컬럼의 값이 0.8보다 큰 행만 추출)
x = df.loc[df['Rate']>0.8, ['Weight', 'Rate', 'Type']]
print('type : ', type(x))
#조건에 맞는 행만 추출(‘Option’ 컬럼이 True인 행만 추출)
x = df.loc[df['Option']==True]
# 다중 조건 사용하기(하나의 컬럼 추출)
x = df.loc[(df['Rate']>0.8) &(df['Option']==True), :]
# 행과 열을 숫자로 지정 : 추출한 컬럼을 숫자로 지정
x = df.iloc[2:4, 1:-1]
데이터 프레임 생성 및 변경
#컬럼추가
df['Type'] = 'A'
#컬럼명 변경
df.rename(columns={'Type': 'Grade'}, inplace=True)
#컬럼명 전체변경
df.columns = ['A', 'B', 'C', 'D']
#특정 부분 값 수정
df.loc[df['Option']==False, 'Type'] = np.nan
#컬럼 삭제
df.drop(['Option', 'Weight'], axis=1, inplace=True)
통계 데이터 계산
- mean() : 평균값을 계산
- var() : 분산 계산
- std() : 표준편차 계산
- sum() : 합계
- count() : 전체의 개수
- values_count() : 범주형 데이터의 종류별 데이터의 개수
- unique() : 범주형 데이터 종류의 개수
그룹핑 함수
# groupby() 함수 'city' 컬럼별로 묶어서 평균을 계산
x = df.groupby('city')['price'].mean()
# groupby() 함수 두 개의 컬럼으로 그룹화해서 평균을 계산
x = df.groupby(['city', 'fruits']).mean()
728x90
LIST