kyejin0412 님의 블로그
[TIL] Week 7-3 파이썬 Pandas 기본 - 자주 쓰는 메소드, 함수 본문
오늘은 아침에 통계 강의를 듣고, 공가 때 빠지고 바로 프로젝트에 들어가서 제대로 집중해서 듣지 못했던 전처리 강의를 다시 들었다.
어제 늦게 자서 오전에 정신이 멍했다 ㅋㅋㅋ 오늘은 헬스장 가서 운동하고 푹 자야지! 헬스장을 저렴한 가격에 양도받게 되어 아주 기분이 좋다. 내일 코드카타랑 강의 열심히 듣자.
1. 데이터 프레임과 시리즈
판다스 라이브러리에는 시리즈와 데이터 프레임이라는 두가지 데이터 포맷이 있다.
판다스로 다양한 데이터 파일들( json, html, csv, hdf5, sql )을 데이터 프레임 형식으로 바꿔서 분석할 수 있기 때문에 필수 라이브러리이다.
- 시리즈 (Series) : 표에서 열 하나에 해당함. 세로 한 줄. 1차원 배열의 데이터
- 데이터프레임 (DataFrame) : 테이블 하나에 해당함. 이차원의 행렬의 데이터
2. 자주 쓰는 함수, 메소드 알아보기
# 모든 라이브러리는 pip 를 활용하여 최초 1회 설치
# pip install pandas
# pip install numpy
# pandas 라이브러리를 활용한 csv 파일 읽기
df = pd.read_csv("xxxx.csv")
# 테이블 확인하기, 앞에 라이브러리가 없으므로 내장 함수
display(df, df2, df3)
# 처음 5 줄만 출력하기 (디폴트가 5, 다른 숫자로 설정 가능)
#df2.head()
# 마지막 5 줄만 출력하기 (디폴트가 5, 다른 숫자로 설정 가능)
#df2.tail()
# 각 테이블의 행(가로) 길이 파악하기
len(df)
# shape: 테이블의 행과 열의 갯수를 반환
df.shape
# dtypes: 테이블 내 컬럼타입(문자형, 숫자형, 배열 등) 확인
df.dtypes
# columns: 테이블 내 컬럼 확인
df.columns
# values: 테이블 내 각 행들을 배열 형태로 확인
df.values
# 테이블 기본 구조 한눈에 확인하기
df.info()
# 전체 행 갯수, 평균, 표준편차, 최솟값, 사분위수, 최댓값 확인
df2.describe()
#컬럼별로 결측치(데이터가 없는) 확인하기
df.isnull().sum()
# 특정 컬럼 1개 가져오기
#방법1: 속성. 사용
df.Category
#방법2: [] 연산자 사용
df['Category']
#방법3: iloc 사용
# : 은 모든 행을 가져오겠다는 의미이며 dataframe 의 인덱스 번호 4번(카테고리)컬럼을 가져오겠다는 의미
df.iloc[:,4]
# 특정 컬럼 여러 개 가져오기
#방법1: [[]] 연산자 사용
# []를 하나 사용하면 결과값이 series 형태로 반환되어 key error 가 발생되며, [[]] 는 dataframe 으로 반환되어 에러가 나지 않는다
df[['Category','Selling Price']]
#방법2: iloc 사용
# : 은 모든 행을 가져오겠다는 의미이며 dataframe 의 인덱스 번호 4번, 7번 컬럼을 가져오겠다는 의미
df.iloc[:,[4,7]]
# 특정 컬럼 버리기
# axis=0 은 인덱스 기준, 1은 컬럼 기준 삭제를 의미
# inplace=True 는 원본을 변경하겠다는 의미, False 의 경우 원본테이블은 변경되지 않음
df3.drop('Interaction type', axis=1, inplace=True) --> 위 아래 행은 같은 결과
df3 = df3.drop('Interaction type', axis=1)
# 조건에 부합하는 데이터 가져오기1
# 조건에 만족하는 행은 정상출력, 아닌 행은 NaN 으로 반환, 즉 조건에 맞는 행만 가져오지 않고 모두 가져옴.
df2.where(df2['Age']>50)
# 조건에 부합하는 데이터 가져오기2
# true, false의 개념이 아닌 조건에 부합하는 데이터만 슬라이싱하여 가져오고 싶을 때
# mask 메서드로 불립니다. 이름은 반드시 mask 일 필요가 없습니다.
mask = ((df2['Age']>50) & (df2['Gender']=='Male'))
df2[mask]
# 데이터 그루핑- 기준 1개
# 'Gender' 열을 기준으로 그루핑해서, 'Customer ID' 개수를 센다.
df2.groupby('Gender')['Customer ID'].count()
# 데이터 그루핑- 기준 여러개
# 기준컬럼이 여러개일 때는 소괄호 안에 대괄호로 컬럼을 묶어준다.
# 'Gender', 'Location' 열을 기준으로 그루핑해서, 'Customer ID' 개수를 센다.
df2.groupby(['Gender','Location'])['Customer ID'].count()
# 데이터 count 와 nunique(distinct, 중복제거) 차이
# unique() : 고유값만 반환, nunique() : 고유값 세기
df2.groupby('Location')['Age'].count() --> 중복포함해서 개수를 센다.
df2.groupby('Location')['Age'].nunique() --> 중복제거해서 개수를 센다. number + unique
'내일배움캠프-데이터분석' 카테고리의 다른 글
| [TIL] Week 7-5 통계 - 분포 종류, 검정과 오류 (0) | 2025.12.05 |
|---|---|
| [TIL] Week 7-4 파이썬 Pandas 기본 과제 오답노트 / window function - shift, rolling, expanding / 상관관계 (0) | 2025.12.04 |
| [TIL] Week 7-2 파이썬 Pandas 심화 - melt, stack, unstack, transpose / 통계 시작 (0) | 2025.12.02 |
| Week 6-4, 6-5 기초 프로젝트 마무리 (0) | 2025.11.28 |
| Week 6-3 기초 프로젝트 - 그래프 개선, 피그마 작업 (0) | 2025.11.26 |