다음과 같은 데이터프레임이 있을 때
a, b, c 열의 값을 합한 새로운 열을 만들고 싶으면
df['sum'] = df['a'] + df['b'] + df['c']
이렇게 간단하게 새로운 열을 만들 수 있다.
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)
cut() 과 qcut() 더 자세히 알아보기 : 여기 클릭하면 더욱 자세한 활용법이 나옵니다.
grades = ['4등급', '3등급', '2등급', '1등급']
cut_bins = [0, 69, 79, 89, 100]
df['영어등급'] = pd.cut(df['영어점수'], bins = cut_bins, labels = grades)
pd.qcut(x, q, labels=None, retbins = False, precision = 3, duplicates = 'raise')
grades = ['4등급', '3등급', '2등급', '1등급']
df['수학등급'] = pd.qcut(df['수학점수'], 4, labels = grades)
df.clip(lower=None, upper=None, axis=None, inplace=False, args, kwargs)
lower : 하한값
upper : 상한값
axis : 계산할 기준이되는 레이블
df['clip'] = df['a'].clip(lower=5, upper=6)
각 열의 최대값을 불러오고 싶으면 다음처럼 각 열의 최댓값을 불러낼 수 있다.
df.max(axis=0) #axis=0은 행과 행을 비교, axis=1은 열과 열 비교
각 행의 최소값을 불러오고 싶을 땐 axis = 1로 설정한다.