본문 바로가기
KT-AIVLE

[KT-AIVLE 2주차 AI Track] Pandas Library

by 배준오 2023. 3. 17.
반응형

블로그 카테고리 용도:

🔎 매주 KT 에이블 스쿨에서 배운 내용을 복습하기 위해

[Python library]

1. Pandas

Pandas의 사용 목적은 DataFrame을 사용하기 위함이고 이를 통해

데이터의 처리,조회,분석을 효율적으로 할 수 있습니다.

Series -> 1차원 구조

DataFrame -> 2차원 구조

# 라이브러리 불러오기
import pandas as pd

[DataFrame]

위와 같은 데이터 프레임에서 인덱스란 행을 지정할 때 사용하는 정보이고

열 이름은 열을 지정할 때 사용하는 정보입니다.

위와 같은 2차원 데이터 프레임이나 1차원 시리즈 등은 직접 만들어서 사용할 수도있지만,

분석용 데이터 같은 경우 대부분 csv파일에서 데이터를 읽어옵니다.

 

[CSV파일 읽어오기]

pd.read_csv('파일의 경로')

read_csv를 통해 데이터를 읽어오면 위와 같은 2차원 형태의 데이터 프레임이 보여지게 됩니다.

[자주 사용되는 데이터 프레임 메서드]

  • head(): 상위 데이터 확인
  • tail(): 하위 데이터 확인
  • shape: 데이터프레임 크기
  • index: 인덱스 정보 확인
  • values: 값 정보 확인
  • columns: 열 정보 확인
  • dtypes: 열 자료형 확인
  • info(): 열에 대한 상세한 정보 확인
  • describe(): 기초통계정보 확인
  • unique(): 고윳값 확인
  • value_counts(): 고윳값 개수 확인
  • .sum(): 열 집계
  • .max(): 열 최대값
  • mean(): 열 평균값
  • median(): 열 중앙값

[데이터 프레임 정렬]

  • 특정 열을 기준으로 정렬하는 방법
# 단일 열 정렬
data.sort_values(by='열이름',ascending=False) #False=내림차순 True=오름차순
# 복합 열 정렬
data.sort_values(by=['JobSatisfaction','MonthlyIncome'],ascending=[True,False])

[데이터 조회]

데이터 프레임에서 특정 열을 조회를 하려면 loc함수를 이용해야합니다!

(data['열이름'] 처럼 사용해도 되지만 pandas는 loc함수를 권장한다고 하니..)

loc함수를 사용하면 열의 조건을 줘서 필요한 데이터만 추출할 수 있습니다.

예시)

# DistanceFromHome 열 값이 10 보다 큰 행 조회 (단일 조건 조회)
data.loc[data['DistanceFromHome'] > 10]

# and로 여러 조건 연결 (여러 조건 조회)
data.loc[(data['DistanceFromHome'] > 10) & (data['JobSatisfaction'] == 4)]

# or 조건 사용
data.loc[(data['DistanceFromHome'] > 10) | (data['JobSatisfaction'] == 4)]

[데이터 조회 함수]

  • isin([값1,값2,,,값n]) : 값1 or 값2 or ,, 값n인 데이터만 조회

isin()함수를 사용할땐 괄호안의 값을 반드시 리스트 형태로 입력해야 합니다.

  • between(값1,값2) : 값1 ~ 값2까지 범위안의 데이터만 조회합니다.

사용 예시)

# isin() => 값 나열 #값이 4와 1인 것
data.loc[data['JobSatisfaction'].isin([1,4])]

# between() => 범위 지정
data.loc[data['Age'].between(25, 30)]

# 조건에 맞는 하나의 열 조회 Age는 열이름
data.loc[data['MonthlyIncome'] >= 10000, ['Age']]

[그룹 집계]

판다스의 .groupby()기능은 데이터를 그룹별로 분할하여 독립된 그룹에 대하여

별도로 데이터를 처리 하거나 그룹별 통계량을 확인하고자 할 때 유용한 함수입니다.

사용 예시)

# MaritalStatus 별 Age 평균 --> 데이터프레임
data.groupby('MaritalStatus', as_index=False)[['Age']].mean()

# 두개의 열은 리스트로 지정해야함
data.groupby('MaritalStatus', as_index=False)[['Age','MonthlyIncome']].mean()

# 'MaritalStatus', 'Gender'별 나머지 열들 평균 조회
data_sum = data.groupby(['MaritalStatus', 'Gender'], as_index=False)[['Age','MonthlyIncome']].mean()
반응형