일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 코딩
- pandas
- 알고리즘
- github
- 자바
- 파이썬
- AIVLE
- KT
- Python
- KT AIVLE
- 모각코
- LG Aimers
- dictionary
- 데이터
- 백준
- 정처기 실기
- AI학습
- ai 전문가 과정
- 인공지능
- 데이터분석
- 데이터과학
- AI 윤리
- Ai
- Java
- 코딩테스트
- 정처기
- list
- numpy
- git
- 클래스
- Today
- Total
무향향수
[Python] Pandas(판다스) 기능 이해하기 본문
목차 🌏
- Pandas(판다스)의 기능
- Pandas(판다스) 사용하기
학습 이유
파이썬 기초 문법을 알지만 실제로 데이터 분석하는 방법은 알지 못해서 방학동안 파이썬의 라이브러리들을 학습하여 혼자서 데이터 분석하는 방법을 습득하기 위하여 공부를 시작하게 되었다. 데이터 분석하는 방법에 대해 학습하고 실습도 진행하여 다양한 공모전에 나가 볼 예정이다.
🌏 1. Pandas(판다스)의 기능
1. Pandas(판다스)란 쉽고 간편한 데이터 처리를 위해 파이썬에서 제공하는 라이브러리이다.
2. 데이터 분석에 필수적으로 사용되는 라이브러리이기 때문에 꼭 학습해야한다.
3. Pandas는 관계형 데이터 또는 레이블된 데이터를 쉽고 직관적으로 조작할 수 있도록 설계된 패키지이다.
=> 관계형 데이터 : 다른 데이터들과의 관계가 정해진 데이터
=> 레이블된 데이터 : 특징이 정해진 데이터
=> 레이블 : 이름
구체적인 판다스의 기능
1. 통합 인덱싱으로 데이터를 조작할 수 있는 데이터 프레임
=> 인덱싱 : 데이터 프레임에서 특정한 데이터만 골라내는 것
=> 데이터 프레임 : 표 형태의 데이터
2. 대규모 데이터 분류, 슬라이싱, 인덱싱
3. 다양한 데이터 구조와 파일 형식 지원
4. 데이터 그룹화, 정렬, 결합, 필터링
5. 데이터 형태 변경, 삭제 및 추가
6. 시계열 | 문자열 데이터 지원
=> 시계열 데이터 : 일정 시간 동안 수집된 데이터 셋의 집합
7. 데이터 통계 및 시각화
8. 데이터 셋 병합
=> 데이터 셋 : 특정 작업을 위해 관련있는 데이터를 모아놓은 것
🌏 2. Pandas(판다스) 사용하기
목차 💩
1) 라이브러리 import
2) 파일 읽어오기
3) 데이터 선택하기1 (단일행 & 여러행)
4) 데이터 선택하기2 (iloc & loc)
5) 데이터 선택하기3 (조건에 맞게)
6) 결측치
7) 데이터 변경
💩1) 라이브러리 import하기
=> 라이브러리 & 모듈 : 프로그래밍에서 재사용 가능한 코드의 집합. 특정 기능이나 작업을 수행하기 위해 필요한 함수, 클래스, 상수 등을 포함하고 있어서 개발자가 직접 작성하지 않아도 이미 구현된 기능들이 제공되기 때문에 편리하고 생산성을 향상시켜준다.
import pandas as pd # 데이터 프레임 생성을 위해 pandas 사용
Pandas는 데이터 구조화 및 처리에 유용한 기능들을 제공한다.
데이터를 표 형태로 표시하거나, 정렬하거나, 그룹화할 수 있다.
💩 2) 파일 읽어오기
pd.read_csv() => pd.read_csv('파일 경로')
pd.read_csv()에 파일 경로를 인자로 전달하면 해당 파일을 읽어와서 데이터 프레임 형태로 반환한다.
df = pd.read_csv('train.csv')
# 파일 경로를 인자로 전달하면 해당 파일을 읽어와서
# 데이터 프레임 형태로 반환한다.
데이터 프레임 형태로 바뀐 파일을 변수 df에 저장하여 데이터 처리 작업을 할 수 있다.
💩 3) 데이터 선택하기1 (단일 행 & 여러 행)
! 단일행 !
변수명.loc[숫자] => df.loc[1]
df의 첫번째 행을 출력해준다.
loc속성은 데이터 프레임에서 특정 행 또는 열을 선택하기 위해 사용된다.
loc는 location의 약자로, 데이터 프레임의 행 또는 열의 레이블이나 boolean array로 인덱싱하는 방법
레이블 값을 사용하여 특정 값을 선택할 수 있다.
df.loc[2]
# read_csv()를 사용하여 데이터 프레임이 저장된 df에 loc[] 함수를 사용하여
# 레이블이 2인 행을 선택해준다.
출력 형태 (두번째 행)
! 여러 행 !
df[숫자:숫자] => df[100:]
df의 100번째 행부터 마지막까지 선택해준다.
display() : 출력용도
df[]는 파이썬의 슬라이싱 문법을 사용한다.
=> slicing(슬라이싱) : 데이터 프레임이나 시리즈 객체에서 원하는 데이터를 선택하는 방법
=> 시리즈는 연속적인 값들로 이루어진 일차원 배열과 인덱스로 불리는 자료 라벨(label) 배열로 이루어진 객체이다.
display(df[100:])
출력 형태 (100 ~ 마지막 행)
💩 4) 데이터 선택하기2 (iloc & loc)
iloc[]
iloc는 Integer location의 약자로 데이터 프레임의 행이나 열의 순서를 나타내는 정수로 특정 값을 추출하는 함수
위치 기반의 인덱싱을 사용한다.
df[100:].iloc[0] # 100부터 선택된 데이터 프레임의 첫 번째 행을 선택
df.loc[100] # 100번째 행을 선택
# 둘 다 같은 데이터 프레임이 출력된다.
출력 형태 (100번째 행)
loc[]
df[100:].loc[100]
100번째 행부터 마지막 행까지 중에서 레이블이 100인 행을 선택한다.
loc는 레이블 기반 인덱싱을 사용한다.
df[100:].loc[100]
출력 형태 (100번째 행)
loc[행, 열]
df.loc[ : , 'genre']
# 모든 행의 장르 열 출력
출력 형태 (장르)
df[열]
df['genre'] # 제목 열 모두 출력
df.loc[ : , 'genre'] # 제목 열 모두 출력
# 둘 다 같은 값이 출력된다.
출력 형태 (장르)
df[[열, 열]]
여러 열 정보 선택하기
df[['title', 'genre']]
# 제목과 장르 열 출력
출력 형태 (제목과 장르)
💩 4) 데이터 선택하기3 (조건에 맞게)
df[열] == 조건
특정 조건을 만족하는 행들을 필터링하는데 사용된다.
비교연산자를 사용하여 특정 조건에 해당하는 데이터만을 추출하면, 필요한 데이터만 뽑아 분석할 수 있다.
df['genre'] == "액션"
# 장르가 액션인 경우 True, 그 외라면 False를 반환해준다.
반환 결과 (장르)
df[df[열] == 조건] => df[df['genre'] == '액션']
df[df['genre'] == '액션']
df에서 genre열의 값이 액션인 행들을 모두 선택한다.
반환 결과(장르가 액션인 모든 행)
df[(df[열] == 조건) & (df[df[열] == '조건'])]
두 개의 조건을 동시에 충족하는 행들을 선택한다.
df[(df['genre'] == '액션') & (df['distributor'] == '(주)쇼박스')]
# 장르가 액션이고 배급사 이름이 (주)쇼박스인 행을 선택한다.
반환 결과(장르가 액션이고 배급사 이름이 (주)쇼박스인 행)
df[df[열] > 조건]
df[df['num_actor'] > 5]
# 배우가 5명 이상인 열을 모두 출력한다.
반환 결과(배우가 5명 이상인 열)
💩 6) 결측치
=> 결측치(NaN) : 데이터가 없는 값, 데이터 수집 과정에서 정보가 누락되었거나 해당 정보가 존재하지 않는 경우
⭐ 데이터 분석에서 결측치를 처리하는 것이 중요!
⭐ 결측치가 포함된 데이터 사용시 분석 결과가 왜곡될 수 있음에 주의!
결측치가 존재하는 데이터
df[df[열].isnull()]
열의 값이 null인 행들만 선택한다.
df[df['dir_prev_bfnum'].isnull()]
# 평균 관객 수의 값이 결측치인 행을 출력한다.
반환 결과(평균 관객 수가 결측치인 행)
결측치가 없는 데이터
df[df[열].notnull()]
notnull_data = df[df['dir_prev_bfnum'].notnull()] # 평균 관객수가 결측치가 아닌 행만 출력
notnull_data
반환 결과(평균 관객 수가 결측치가 아닌 행)
💩7) 데이터 변경
df.head(숫자)
데이터 프레임의 처음 두 행을 출력
df.head()를 사용할 때, 0은 열이 출력되기 때문에 값을 출력하려면 1부터 시작해야한다.
display(df.head(2)) # 처음 두 행 출력
df.loc[1, 'dir_prev_bfnum'] = 500000.0 # 첫 행의 평균 관객 수를 500000.0로 변경한다.
df.head(2)
데이터 변경하는 코드를 사용하여 데이터를 원하는대로 수정하거나 결측치 처리등의 작업을 할 수 있다.
반환 결과 (첫 행의 평균 관객 수 변경)
느낀점
파이썬 데이터 분석 실력향상을 위해 Pandas를 DACON 사이트에서 독학하였는데 직접 데이터를 분석하여 결과를 출력하는 것이 재미있었다. 그러나 생각보다 헷갈리는 코드들이 많고 외워야 하는 기능이 많은 것 같다고 생각했다. Pandas의 기능들에 익숙해지기 위해 혼자 다양한 데이터들을 분석하는 연습을 해볼 것이다. 이제부터 매일 데이터 분석 공부를 하여 나중에는 공모전도 나가야겠다.
'데이터분석_Python' 카테고리의 다른 글
[Python] random 이해하기 (rand, randint, randn) (0) | 2023.08.08 |
---|---|
[Python] Matplotlib 기능 이해하기 (0) | 2023.08.04 |
[Python] Numpy(넘파이) 기능 이해하기 (0) | 2023.08.04 |
[Python] 파이썬 함수 사용 방법 (0) | 2023.08.04 |
[Python] 데이터 분석, 데이터 사이언스 (0) | 2023.08.03 |