AI기본과정/데이터분석 기초

데이터분석 기초 | 열 호출 | 새로운 열 생성(.assign) | 열 삭제 (drop / inplace = True) | 동일한 데이터 타입 열 출력(select_dtypes) | 열 이름, 열 순서 변경 | 열 <> 인덱스 자리 바꿈 (transpose / .T)

ANNASENA 2023. 6. 12. 08:00
728x90

 

 

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

728x90