본문 바로가기
내가 공부한 것들

[파이썬] 데이터프레임 다루기(특정 행 및 열 추출, 컬럼 추가, 수정 등)

by 2ns 2024. 1. 4.

본 포스트에서는 데이터프레임을 다루는 여러가지 코드에 대해 알아본다.

 

먼저 데이터는 아래와 같다.

import pandas as pd

# 예시 데이터
data = {
    '도시': ['서울', '부산', '대구'],
    '인구': [1000, 500, 300],
    '면적': [605.21, 770.04, 883.56]
}

# 데이터프레임 생성
df = pd.DataFrame(data)

 

1. 특정 행 또는 열을 추출하는 방법

- 특정 열 추출: df['컬럼명']

- 여러 열 추출: df[['컬럼1', '컬럼2']] 

- 특정 행 추출: df.loc[행의 레이블]

- 특정 행 추출: df.iloc[행의 인덱스]

 

*loc와 iloc가 얼핏 보면 같아 보이지만, loc는 레이블 이름을 기준으로 하는데 반해, iloc는 인덱스를 기준으로 한다.

(둘의 차이는 아래에서 극명히 드러난다.)

 

loc는 레이블을 기준으로 위 df에서 1번 행, 2번 행을 불러온거라면,

iloc는 인덱스를 기준으로 위 df에서 두번째 행(부산)만을 가져온 것이다.

(파이썬에서 인덱스를 지정할 때 0이 첫번째를 의미하며, [X:Y]는 X+1번째 행부터 Y-1번째 행까지를 의미한다.)

 

2. 컬럼 추가 및 수정

- 컬럼 추가: df['새로운 컬럼명'] = value를 사용해 새로운 컬럼을 추가

- 컬럼명 변경: df.rename(columns={'기존의 컬럼명' : '새로운 컬럼명'}, inplace=True

                       df.columns = ['컬럼1의 새이름', '컬럼2의 새이름', ... ]   

                       (모든 컬럼명을 한번에 변경할 때 유용)

 

*inplace가 true일 경우, 원본 데이터프레임이 바로 수정되며, 반대로 false일 경우 원본 데이터프레임은 수정되지 않음

 


- 컬럼 수정: df['기존에 있는 컬럼명'] = new_value를 사용해 기존 컬럼의 값을 수정

 

 

(240115 추가)

3. 특정 값을 가진 행만을 추출하는 방법

- 특정 값을 가지고 있는 행만 추출: df[df['컬럼명'] == '특정 값']

- 특정 값을 가지고 있는 행만 추출(여러 값을 가진 행을 추출할 때): df[df['컬럼명'].isin(['특정 값1', '특정 값2'])]