[Pandas 기초] 새로운 열 만들기

soyyeong·2023년 2월 20일
0
post-thumbnail

1. 조건에 맞는 새 열 만들기

다음과 같은 데이터프레임이 있을 때
a, b, c 열의 값을 합한 새로운 열을 만들고 싶으면

df['sum'] = df['a'] + df['b'] + df['c']

이렇게 간단하게 새로운 열을 만들 수 있다.

sum이라는 열이 새로 생겼다.

2. 새 열 할당 assign() 기본 사용법

lambda를 활용하는 방법

df.assign( 새로운 열 이름 = lambda df : 원하는 식)
df = df.assign(multiply = lambda df : df['a'] * df['b'] )

df = df.assign(multiply=lambda df: df['a']*df['b']*df['c'])

lambda 없이 활용하는 방법

df.assign(cx2 = df['c']*2)

여러 열을 한 번에 할당
쉼표로 구분하여 여러 열을 한 번에 할당할 수 있다.

df.assign(new_a = lambda df : df.a+2, new_b =df['b']*2)

3. 구간 나누기 | cut()과 qcut() 차이와 활용

cut() 과 qcut() 더 자세히 알아보기 : 여기 클릭하면 더욱 자세한 활용법이 나옵니다.

3-1) cut() 활용 : 절대구간 나누기

grades = ['4등급', '3등급', '2등급', '1등급']
cut_bins = [0, 69, 79, 89, 100]

df['영어등급'] = pd.cut(df['영어점수'], bins = cut_bins, labels = grades)

3-2) qcut() 활용 : 상대구간 나누기

pd.qcut(x, q, labels=None, retbins = False, precision = 3, duplicates = 'raise')

grades = ['4등급', '3등급', '2등급', '1등급']
df['수학등급'] = pd.qcut(df['수학점수'], 4, labels = grades)

4. 임계값 설정 clip()

df.clip(lower=None, upper=None, axis=None, inplace=False, args, kwargs)

lower : 하한값
upper : 상한값
axis : 계산할 기준이되는 레이블

df['clip'] = df['a'].clip(lower=5, upper=6)
a열에서 5이하는 모두 5로, 6이상은 모두 6으로 변환됨

5. 각 열 또는 행의 최댓값 불러오기

각 열의 최대값을 불러오고 싶으면 다음처럼 각 열의 최댓값을 불러낼 수 있다.

df.max(axis=0)  #axis=0은 행과 행을 비교, axis=1은 열과 열 비교

각 행의 최소값을 불러오고 싶을 땐 axis = 1로 설정한다.

profile
블로그 이전 중입니다 : https://soyeong-blog.netlify.app/

0개의 댓글