[파이썬] 데이터프레임 다루기(특정 행 및 열 추출, 컬럼 추가, 수정 등)
본 포스트에서는 데이터프레임을 다루는 여러가지 코드에 대해 알아본다.
먼저 데이터는 아래와 같다.
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'])]