Pandas: apply와 lambda를 함께 사용하는 방법


다음 기본 구문을 사용하여 Pandas DataFrame에 람다 함수를 적용할 수 있습니다.

 df[' col '] = df[' col ']. apply ( lambda x: ' value1 ' if x < 20 else ' value2 ')

다음 예는 다음 pandas DataFrame에서 실제로 이 구문을 사용하는 방법을 보여줍니다.

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
                   ' points ': [18, 22, 19, 14, 14, 11, 20, 28],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4]})

#view DataFrame
print (df)

  team points assists
0 to 18 5
1 B 22 7
2 C 19 7
3 D 14 9
4 E 14 12
5 F 11 9
6 G 20 9
7:28 a.m. 4

예 1: Apply 및 Lambda를 사용하여 새 열 생성

다음 코드는 적용람다를 사용하여 값이 기존 열의 값에 따라 달라지는 새 열을 만드는 방법을 보여줍니다.

 #create new column called 'status'
df[' status '] = df[' points ']. apply ( lambda x: ' Bad ' if x < 20 else ' Good ')

#view updated DataFrame
print (df)

  team points assists status
0 A 18 5 Bad
1 B 22 7 Good
2 C 19 7 Bad
3 D 14 9 Bad
4 E 14 12 Bad
5 F 11 9 Bad
6 G 20 9 Good
7:28 4 Good

이 예에서는 다음 값을 사용하는 status 라는 새 열을 만들었습니다.

  • 포인트 열의 값이 20 미만인 경우 ‘ 나쁨 ‘입니다.
  • 포인트 열의 값이 20보다 크거나 같으면 ‘ 좋음 ‘입니다.

예 2: Apply 및 Lambda를 사용하여 기존 열 수정

다음 코드는 ApplyLambda를 사용하여 DataFrame의 기존 열을 수정하는 방법을 보여줍니다.

 #modify existing 'points' column
df[' points '] = df[' points ']. apply ( lambda x: x/2 if x < 20 else x*2)

#view updated DataFrame
print (df)

  team points assists
0 to 9.0 5
1 B 44.0 7
2 C 9.5 7
3D 7.0 9
4 E 7.0 12
5 F 5.5 9
6 G 40.0 9
7 A.M. 56.0 4

이 예에서는 람다 함수의 다음 규칙을 사용하여 기존 포인트 열의 값을 수정합니다.

  • 값이 20보다 작으면 값을 2로 나눕니다.
  • 값이 20보다 크거나 같으면 해당 값에 2를 곱합니다.

이 람다 함수를 사용하여 기존 포인트 열의 값을 수정할 수 있었습니다.

추가 리소스

다음 튜토리얼에서는 Pandas에서 다른 일반적인 기능을 수행하는 방법을 설명합니다.

Pandas Groupby에 기능을 적용하는 방법
Pandas의 다른 열 값으로 NaN을 채우는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다