무향향수

[Python] 데이터프레임 변경 본문

kt aivle

[Python] 데이터프레임 변경

튼튼한장 2024. 6. 2. 18:55

🍓열 이름 변경

columns 속성 변경: 모든 열 이름 변경

tip.columns = ['total_bill', 'tip', 'day', 'time', 'size']
# 모든 열의 이름을 한 번에 변경한다.

 

 

rename() 메소드 사용: 지정한 열 이름 변경

tip.rename(columns={'total_bill_amount':'total_bill',
					'male_female':'sex',
                    'smoke_yes_no':'smoker',
                    'week_name':'day',
                    'dinner_lunch':'time'}, inplace=True)
# 지정한 열의 이름을 변경한다.

 

 

🍓 열 추가

없는 열을 변경하면 그 열이 추가됨

tip['final_amt'] = tip['total_bill'] + tip['tip']
# final_amt 열을 추가한다.

 

insert() 메소드를 사용하면 원하는 위치에 열을 추가할 수 있음

insert(위치, 이름, 추가할 내용)

tip.insert(4, 'div_tb', tip['total_bill'] / tip['size'])
# 4번째 위치에 div_tb라는 새로운 열을 추가해준다.

 

 

🍓 값 변경

기존 값에 다른 값을 매핑(변경)

tip['sex'] = tip['sex'].map({'Male':1, 'Female':0})
# Male -> 1, Female -> 0으로 변경시킨다.

 

 

cut() 메소드

pd.cut() 숫자형 -> 범주형 변수로 변환

예) 나이 -> 나이대, 고객 구매액 -> 고객 등급

 

값 크기를 기준으로 지정한 개수의 범위로 나누어 범주 값 지정

tip['tip_grp'] = pd.cut(tip['tip'], 3, labels['c', 'd', 'e'])
# tip_grp라는 열에 tip열의 내용을 3등분 하여 각각 c, d, e로 저장한다.

 ※ 값의 범위를 균등하게 분할하는 것이지, 값의 개수를 균등하게 맞추는 것이 아니다. ※

 

내가 원하는 구간으로 자르기 bins = []

# 나이를 다음 구간으로 분할합니다.
# 0 < young =< 40
# 40 < junior =< 50
# 50 < senior 

age_group = pd.cut(data2['Age'], bins = [0, 40, 50, 100], labels = ['young', 'junior', 'senior'])

 ※ 값의 범위 중 오른쪽(큰값)이 아닌 왼쪽(작은값)이 포함되도록 하려면 pd.cut 함수 옵션에 right=False 라고 지정해야한다. ※