1. 라이브러리 설치 후 데이터셋 불러오기
▶ 라이브러리 설치하기
import pandas as pd
import seaborn as sns
▶ 데이터셋 불러오기
df = sns.load_dataset('penguins')
df
2. 열 호출하기
2-1) 열 이름 출력하기
▶ df.columns
: 현재 어떤 열이 있고, 이름은 무엇인지 알고 싶을 때 출력
2-2) 단일 열 호출하기
▶ 방법1 : df['특정 열']
df['species']
▶ 방법2 : df.species
df.species
2-3) 복수 열 호출하기
▶ 방법1
▶ 방법2 : columns =
columns = ['species', 'bill_depth_mm']
df[columns]
3. 복수 열을 결합해서 데이터프레임 생성하기
new_df = df[columns]
new_df.head()
new_df.tail()
4. 새로운 열 생성하기
▶ 방법1 : df['특정 열'] =
df['bill_depth_cm'] = df['bill_depth_mm'] / 10
df['bill_length_cm'] = df['bill_length_mm'] / 10
df.head()
▶ 방법2 : df.assign()
df.assign (
bill_length_cm = df['bill_length_mm'] / 10,
bill_depth_cm = df['bill_depth_mm'] / 10
)
5. 동일한 데이터 타입의 열만 선택해서 출력하기
▶ df.info()로 데이터 타입 알아보기
▶ select_dtypes()
: 데이터프레임의 여러 열 중 동일한 데이터타입의 열만 불러옴
* 데이터타입이 float64 인 열 이름 출력
df.select_dtypes(include=['float64']).columns
* 데이터타입이 int64 인 열 이름 출력
df.select_dtypes(include=['int64']).columns
>> 이 데이터셋에는 int64 타입이 없음
* 데이터타입이 object 인 열 이름 출력
df.select_dtypes(include=['object']).columns
* 데이터타입이 object 인 열 이름을 제외하고 출력
df.select_dtypes(exclude=['object']).columns
6. 열과 행 삭제하기
▶ drop()
: 데이터프레임의 불필요한 열이나 행을 삭제할 때 사용하는 함수
: drop() 함수를 별도의 변수에 저장해야 데이터를 다시 불러왔을 때 해당 열이 삭제된 것을 볼 수 있음.
6-1) 열 삭제하기
▶ 단일 열 삭제하기
df.drop('species', axis=1).head()
: axis = 1은 세로(열)을 의미
▶ 복수 열 삭제하기
df.drop(['species', 'flipper_length_mm'], axis=1).head()
▶ inplace = True
: drop() 함수로 삭제 시에는 (별도의 '변수 = drop()' 에 저장하지 않는 한) 데이터프레임을 다시 불러왔을 때 해당 열이 삭제되지 않음.
: 이 때 inplace = True를 사용하면 바로 기존의 데이터 프레임에 변경된 설정이 덮어쓰여짐.
df.drop('species', axis=1, inplace=True)
6-2) 행 삭제하기
▶ drop( [리스트 형식으로 해당 인덱스 번호 입력] )
df.drop([0, 3, 5, 7], axis=0).head()
: axis = 0은 가로(행)을 의미
7. 열 이름 변경하기
▶ rename()
: rename() 함수의 매개변수 cloumns에 {기존 열 이름: 바꿀 열 이름} 형식으로 입력
df.rename(columns={"species" : "펭귄 종류", "island" : "서식하는 섬", "bill_length_mm" : "부리 길이"}).head()
▶ df.columns =
: 9개의 열 이름을 모두 한글로 바꿔보기
df.columns = ['펭귄 종류', '서식하는 섬', '부리 길이', '부리 깊이', '지느러미 길이', '몸무게', '성별', '부리깊이cm', '부리길이cm']
8. 열 순서 / 위치 변경하기
▶ 데이터셋 다시 불러 와보기
df = sns.load_dataset('penguins')
df
▶ 열 이름으로 순서 지정하기
: 데이터프레임의 열 이름을 원하는 순서대로 재입력하면 열 순서가 변경됨
df = df[['species', 'island', 'sex', 'bill_length_mm', 'bill_depth_mm', 'flipper_length_mm', 'body_mass_g']]
df.head()
▶ columns 함수로 순서 지정하기
df.columns = df.columns[[0, 1, 6, 5, 2, 3, 4]]
df.head()
▶ for ~ in ~ 함수 이용하기
cols_to_stay = ['bill_length_mm', 'bill_depth_mm', 'flipper_length_mm']
cols = cols_to_stay + [col for col in df if col not in cols_to_stay]
df = df[cols]
df.head()
cols = [col for col in df if col not in cols_to_stay] + cols_to_stay
9. 열과 인덱스 전치하기(자리 바꾸기)
▶ transpose()
: 열을 인덱스로 만들어야 하는 경우 판다스의 transpose() 함수 사용
: 데이터프레임의 전체 인덱스를 일일이 입력하면 너무 길어서 슬라이싱 사용
df = df[:11].transpose() # [:11]로 하면 10개가 출력됨 (:출력할 개수+1)
df
▶ .T
: transpose() 함수를 . T로 줄여쓸 수 있음
df[:11].T
댓글