inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

단 두 장의 문서로 데이터 분석과 시각화 뽀개기

10) assign 으로 새로운 컬럼 만들기, qcut으로 binning, bucketing 하기

apply와 assign의 차이점?

722

Jayoung Kim

작성한 질문수 4

1

apply와 assign이 비슷해보이는데, 차이점이 뭔가요?

apply pandas assign python

답변 1

1

박조은

안녕하세요.

apply 와 assign은 둘 다 함수를 사용할 수 있다는 점이 비슷합니다.

apply는 결과를 새로운 컬럼(변수)으로 만들어주려면 결과 값을 다시 데이터프레임에 반영해 주어야 합니다.

assign 은 결과가 데이터 프레임의 변수로 반영이 되도록 합니다.

그래서 apply는 특정 함수를 통해 연산, 전처리를 하고자 할때 사용하며,

assign 은 연산 후 컬럼을 생성하는 역할을 하는데 여러 개의 컬럼을 한번에 생성할 수도 있습니다.

apply 에 대한 pandas 공식 문서의 정의 입니다.

Apply a function along an axis of the DataFrame.

Objects passed to the function are Series objects whose index is either the DataFrame’s index (axis=0) or the DataFrame’s columns (axis=1). By default (result_type=None), the final return type is inferred from the return type of the applied function. Otherwise, it depends on the result_type argument.

apply는 연산결과를 반환하지만 새로운 컬럼으로 생성해 주려면 별도의 처리가 필요합니다.

df.apply(np.sqrt)
     A    B
0  2.0  3.0
1  2.0  3.0
2  2.0  3.0

 assign 에 대한 pandas 공식 문서의 정의 입니다.

Assign new columns to a DataFrame.

Returns a new object with all original columns in addition to new ones. Existing columns that are re-assigned will be overwritten.

아래 예제를 보면 temp_c라는 컬럼의 연산 결과를 새로운 temp_f 라는 컬럼으로 생성하고 있습니다.

df.assign(temp_f=df['temp_c'] * 9 / 5 + 32)
          temp_c  temp_f
Portland    17.0    62.6
Berkeley    25.0    77.0

증권 데이터로 신호와 소음찾기 강의에 사용한 assign 예제 입니다.

0

Jayoung Kim

와~~ 빠르고 자세한 답변 너무 감사합니다.

0

박조은

감사합니다 :)

날짜변환 에러

0

268

0

업로드자료 오류

1

385

1

20강 관련 문의드립니다.

1

315

1

17강 도입부 실습사이트 문의

2

314

1

4강 코드 오류메세지 관련 질의

1

390

2

merge와 그룹바이 관련 질문이 있습니다.

1

503

3

쉬운 도서 추천 좀 부탁드립니다.

2

409

2

1강2강에 있는 csv파일을 다운받으면 한글이 깨져서 나와요

1

260

1

주피터노트북 목록(contents) 만들기

1

637

1

df.loc[df["거주지"].isin(gu), "지역"] = df["거주지"] 질문있습니다

1

215

1

월 주 함꼐 value_counts()

1

231

1

day_count.iloc[i]와 day_count[i]의 차이 질문

1

357

1

df 인덱싱 질문입니다

1

191

1

그래프에 한글제목을 나타내고 싶습니다.

1

545

1

배운 것 기반으로 만들어보고 있는데 질문이 있습니다.

1

409

5

질문이요

1

310

1

set_index()

1

296

1

timeit 관련 질문

1

370

1

그래프 밑에 제목을 넣으려면 어떡해야하나요???

1

434

2

한글폰트 설치 후 나오지 않는 현상 문의

1

1190

3

CSV 파일 불러오기

1

584

1

크롤링으로 csv파일 가져오기

2

326

1

영상에서 소개해주시는 웹사이트

2

265

1

질문

1

243

2