728x90
반응형
SMALL
이전 글에서 사용하던 csv 파일 예제로 데이터프레임을 다뤄보자.
[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