본문 바로가기
Python/Data Analysis

[파이썬, Python] Pandas 모듈 - 2️⃣ 데이터프레임(DataFrame) 정보와 데이터프레임 다루기

by coding-choonsik 2023. 6. 8.
728x90
반응형
SMALL

이전 글에서 사용하던 csv 파일 예제로 데이터프레임을 다뤄보자.

korean-idol.csv
0.00MB

 

[Python] Pandas 모듈 - 1️⃣ 판다스 모듈이란?, DataFrame&Series, CSV파일 다루기, 엑셀파일 읽어오기

1. 판다스(Pandas) '웨스 맥키니'가 개발한 라이브러리 데이터 작업을 쉽고 직관적으로 설계된 빠르고 유연한 자료구조(데이터프레임)를 제공하는 모듈 1-1. 판다스 라이브러리 설치하기 !pip install p

coding-yesung.tistory.com


1. 데이터프레임 기본 정보 알아보기

 

df = pd.read_csv('/content/drive/MyDrive/KDT/Python/2. 데이터분석/korean-idol.csv')
df

type(df)

>>> pandas.core.frame.DataFrame
# info(): 기본적인 행(row), 열(column)의 정보와 
df.info()


1-1. 열(column) 다루기

df.columns

>>> Index(['이름', '그룹', '소속사', '성별', '생년월일', '키', '혈액형', '브랜드평판지수'], dtype='object')

 

✅ df의 컬럼을 새로운 컬럼명으로 변경하기

new_column = ['name', 'group', 'company', 'gender', 'birthday', 'height', 'blood', 'brand']

df.columns = new_column
df.columns

>>> Index(['name', 'group', 'company', 'gender', 'birthday', 'height', 'blood',
       'brand'],
      dtype='object')
      
 df

 

1-2. 통계정보 알아보기

✅ describe(): 통계 정보 출력, 수치데이터만 통계정보로 가져옴

df.describe()

 

 

 

✅ object 타입도 포함하여 통계정보 확인하기

# object 타입도 포함하여 통계정보 확인하기
# unique: 고유한 값이 몇개인지
# top: 각 열에 대해 상단에 있는 데이터
# freq: 빈도수
df.describe(include=object)

 

 

1-3. 형태 알아보기

df.shape

>>> (15, 8)

 

 

1-4. 원하는 개수의 데이터 보기

  • head(): 상위 5개의 row를 출력
  • head(n): 상위 n개의 row를 출력
  • tail(): 하위 5개의 row를 출력
  • tail(n): 하위 n개의 row를 출력
df.head()  # 기본이 5개씩

df.head(3)

 

df.tail()

 

df.tail(3)

 

 

1-5. 정렬하기

✅ index로 오름차순 정렬하기

df.sort_index()

 

✅ index로 내림차순 정렬하기

df.sort_index(ascending=False)

 

 

✅ 특정 column의 values로 오름차순 정렬하기( NaN값은 맨 아래로 )

df.sort_values(by='height')

 

✅ 특정 column의 values로 내림차순 정렬하기( NaN값은 맨 아래로 )

df.sort_values(by='height', ascending=False)

 

✅ NaN을 가장 위로 올림( 기본은 na_position='last' )

df.sort_values(by='height', na_position='first')

 

✅ 1차 정렬은 키(내림차순), 2차 정렬은 브랜드(오름차순)로 정렬하기

df.sort_values(by=['height','brand'], ascending=[False,True], na_position='first')

 


2. 데이터 다루기

df.head()

 # Series - index와 values만 존재함, 반복문을 돌릴때 사용하기 편함
df['blood']

type(df['blood'])

>>> pandas.core.series.Series

 

2-1. 범위 선택하기

df.head(3)

df[:3]

 

# loc 인덱싱: 레이블(이름) 인덱싱, 행과 열 모두 인덱싱과 슬라이싱이 가능
df.loc[:, 'name']

 

# 파이썬에서 다중 선택은 무조건 리스트로 감싸기!!
df.loc[:, ['name','gender', 'height']]

 

df.loc[:3, 'name']  # 3까지 포함

 

✅ 모든 행의 'name'과 'birthday'가져오기

df.loc[:, ['name', 'birthday']]


# iloc 인덱싱: index로 인덱싱, 행과 열 모두 인덱싱과 슬라이싱이 가능함
df.iloc[:, [0,2]]

df.iloc[:, 0:2]  # 2번 인덱스 컬럼을 포함하지 않음

 

# 행은 1,2 열은 2,3 인덱스
df.iloc[1:3, 2:4]

 


3. Boolean Indexing

# True인 값만 뽑아낼 수 있음
df['height'] >= 180

 

 

df['name'][df['height'] >= 180]     # 키가 180 이상인 조건이 True인 사람들의 이름,  df[df['height'] >= 180]['name']과 같음

 

 

 

 

df[['name','gender']][df['height'] >= 180]

 

 

# loc를 이용하여 키가 180 이상인 사람의 name, gender
# df['height'] >= 180가 True인 사람들의 name과 gender열
df.loc[df['height'] >= 180, ['name', 'gender', 'height']]

 

df['height'] >= 180

 

 

728x90
반응형
LIST