이 글은 Python 컬럼(column)명 추출 / 컬럼명 변경 / 컬럼 추가 및 삭제 / 컬럼 순서 변경 등 컬럼 기초 정리를 담고 있습니다.
Python 컬럼(column)
- 파이썬의 판다스(Pandas) 라이브러리의 2차원 데이터를 다루는 데이터프레임의 열(column, 컬럼)
- 데이터프레임은 2차원 자료 구조 형태(=엑셀 시트, 테이블, 행+열)
아래 데이터프레임에서 product_nm, price가 컬럼이다.
(index) | product_nm | price |
0 | apple | 1300 |
1 | banana | 1000 |
2 | orange | 1500 |
Python 컬럼명 추출
- 데이터프레임명.columns
import pandas as pd
# 데이터프레임 모든 컬럼명
df.columns
사진 속 데이터프레임(=df)을 예시로 컬럼명을 추출해 보자.
df.info()로 데이터프레임의 정보를 확인할 수 있는데, 8개의 컬럼이 있다.
df.columns를 사용하니, 데이터프레임의 모든 컬럼명이 반환되었다.
Python 컬럼명 변경
파이썬은 두 가지 컬럼명 변경 방법이 있다.
rename() 활용
- 데이터프레임명.rename(columns = {'기존 컬럼명' : '새 컬럼명'})
- 이 방법은 모든 컬럼명 변경보다, 특정 컬럼명만 변경하고 싶을 때 유용.
아래 두 코드의 결과물은 같으므로, 편한 방법으로 사용하면 된다.
# 특정 컬럼명 변경
df = df.rename(columns={'Store' : 'Stored_id'})
# 특정 컬럼명 변경
df.rename(columns={'Store' : 'Store_id'}, inplace=True)
- rename함수로 컬럼명을 변경한 결과이다.
리스트 활용
- 데이터프레임명.columns = ['새 컬럼명', '새 컬럼명', ...]
- 데이터프레임의 모든 컬럼명 변경에 사용
- 이때 컬럼명을 "모두 순서대로" 입력해야 하며, 변경을 원치 않는 컬럼명은 기존 컬럼명 그대로 입력한다.
- 입력한 순서에 일치하는 컬럼의 이름이 변경되기에, 순서에 유의하자.
# 모든 컬럼명 변경
df.columns = ['store_id', 'date', 'weekly_sales', 'holiday_falg', 'temp', 'fule_price', 'cpi', 'unemployment']
대문자인 첫 글자를 소문자로, Temperature는 temp로 바꿔보자.
Python 컬럼 추가/삭제
컬럼 추가 시, 마지막 순서에 추가되는 것이 일반적이다.
하지만 특정 순서에 추가하는 방법도 있다.
컬럼 삭제 시, 하나의 컬럼과 여러 컬럼을 삭제하는 방법이 있다.
컬럼 추가
- 데이터프레임명['추가할 컬럼명'] = 추가할 컬럼의 값
# 새 컬럼 추가
df['daily_sales_avg'] = df['weekly_sales'] / 7
데이터프레임(df)에 새 컬럼(daily_sales_avg)을 추가한 결과이다.
insert() 활용
- 데이터프레임명.insert(추가하려는 순서 값, 추가할 컬럼명, 추가할 컬럼 값)
- 컬럼 추가 시, 순서 설정에 사용
- 추가하려는 순서 값은 컬럼 인덱스(0, 1, 2...) 값을 입력한다.
- 파이썬 인덱스는 첫 번째가 0부터 시작한다.
# 컬럼 추가 시, 순서 설정
df.insert(3, 'daily_sales_avg', df['weekly_sales'] / 7)
아래는 4번째(=3)에 새 컬럼(daily_sales_avg)를 추가한 결과이다.
컬럼 삭제
- 데이터프레임명.drop('삭제할 컬럼', axis=1)
- drop 함수 사용 시, axis =1은 컬럼을 삭제한다는 의미이다.
# 한 개의 컬럼 삭제
df = df.drop('daily_sales_avg', axis=1)
# 한 개의 컬럼 삭제
df.drop('daily_sales_avg', axis=1, inplace=True)
위에서 생성했던 daily_sales_avg 컬럼을 삭제한 결과이다.
- 데이터프레임명.drop(['삭제할 컬럼1', '삭제할 컬럼', ...], axis=1)
아래는 여러 개의 컬럼을 삭제한 결과이다.
# 여러 컬럼 삭제
df = df.drop(['cpi', 'unemployment'], axis=1)
# 여러 컬럼 삭제
df.drop(['cpi', 'unemployment'], axis=1, inplace=True)
컬럼 순서 변경
컬럼 순서 변경에는 두 가지 방법이 있다.
reindex() 활용
- 데이터프레임명.reindex(columns=['컬럼명', '컬럼명', ...])
- 컬럼명 변경의 유의점과 똑같이, 입력 순서와 변경될 컬럼의 순서가 일치하기에 순서에 유의하며 입력하자.
- 모든 컬럼의 순서를 다루기에, 컬럼명을 생략하면 삭제된다.
- 따라서 순서 변경을 원치 않는 컬럼은 기존 순서와 똑같이 입력하자.
아래는 컬럼 순서 변경과 동시에, 입력하지 않은 컬럼들은 삭제된 결과이다.
# 컬럼 순서 변경
df = df.reindex(columns=['date', 'stored_id'])
리스트 활용
- 데이터프레임명[['컬럼명', '컬럼명', ...]]
- 순서 변경하려는 컬럼을 원하는 순서에 입력하면 된다.
아래는 컬럼 순서를 변경한 결과이다.
# 컬럼 순서 변경
df = df[['date', 'store_id']]
'PYTHON > Python' 카테고리의 다른 글
Python seaborn 서브플롯 생성 기초 정리 (1) | 2024.04.10 |
---|---|
Python matplotlib 서브플롯 fig, ax(s) 개념과 사용법 기초 정리 (0) | 2024.04.08 |
Python 머신러닝 개념 및 절차 기초 정리 (0) | 2024.04.05 |
Python 머신러닝 피처 엔지니어링(Feature Enginerring) 개념 기초 정리 (0) | 2024.04.04 |
Python 머신러닝 피처 스케일링과 min-max 정규화 기초 정리 (1) | 2024.03.28 |