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