Pandas DataFrame DataFrame.apply() 함수
-
pandas.DataFrame.apply()
의 구문 : -
예제 코드:
DataFrame.apply()
메서드 -
예제 코드:
DataFrame.apply()
를 사용하여 각 열에 함수 적용 -
예제 코드:
DataFrame.apply()
메서드를 사용하여 각 행에 함수 적용 -
예제 코드:
result_type
매개 변수가있는DataFrame.apply()
메서드
pandas.DataFrame.apply()
함수는 행을 따라 모든 요소에 입력 함수를 적용합니다. 또는 호출자 Pandas DataFrame
의 열.
pandas.DataFrame.apply()
의 구문 :
DataFrame.apply(func, axis=0, raw=False, result_type=None, args=(), **kwds)
매개 변수
func |
각 행 또는 열에 적용 할 기능 |
axis |
row (axis = 0) 또는column (axis = 1)을 따라 함수 적용 |
raw |
부울. Series 객체 (raw = False ) 또는ndarray 객체 (raw = True )로 전달 된 행 / 열 |
result_type |
{'expand', 'reduce', 'broadcast', 'None'} axis=1 (열)에만 적용 가능한 연산 출력 유형 버전 0.23.0의 새로운 기능 |
args |
함수func 의 위치 인수입니다. |
**kwds |
함수func 의 키워드 인수입니다. |
반환
지정된 축을 따라 입력 함수를 적용한 후DataFrame
을 반환합니다.
예제 코드: DataFrame.apply()
메서드
import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3,],
'Y': [4, 1, 8]})
print(df)
modified_df=df.apply(lambda x: x**2)
print(modified_df)
출력:
X Y
0 1 4
1 2 1
2 3 8
X Y
0 1 16
1 4 1
2 9 64
DataFrame.apply()
메서드를 사용하여DataFrame
의 모든 요소에lambda
함수lambda x: x**2
를 적용합니다.
lambda
함수는 Python에서 함수를 정의하는 더 간단한 방법입니다.
lambda x: x ** 2
는x
를 입력으로 받고x ** 2
를 출력으로 반환하는 함수를 나타냅니다.
예제 코드: DataFrame.apply()
를 사용하여 각 열에 함수 적용
import pandas as pd
import numpy as np
df = pd.DataFrame({'X': [1, 2, 3,],
'Y': [4, 1, 8]})
print("Original DataFrame")
print(df)
modified_df=df.apply(np.sum)
print("Modified DataFrame")
print(modified_df)
출력:
Original DataFrame
X Y
0 1 4
1 2 1
2 3 8
Modified DataFrame
X 6
Y 13
dtype: int64
여기서는axis=0
(기본값)이므로 각 열에np.sum
이 적용됩니다.
따라서df.apply()
메서드를 사용한 후 각 열의 요소 합계를 얻습니다.
import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3,],
'Y': [4, 1, 8]})
print(df)
modified_df=df.apply(lambda x: (x**2) if x.name == 'X' else x)
print(modified_df)
출력:
X Y
0 1 4
1 2 1
2 3 8
X Y
0 1 4
1 4 1
2 9 8
특정 열에 만 함수를 적용하려면 if 문을 사용하여 함수 정의를 수정하여 열을 필터링합니다. 이 예에서 함수는 열 이름이 X
인 열의 값만 수정합니다.
예제 코드: DataFrame.apply()
메서드를 사용하여 각 행에 함수 적용
import pandas as pd
import numpy as np
df = pd.DataFrame({'X': [1, 2, 3,],
'Y': [4, 1, 8]})
print("Original DataFrame")
print(df)
modified_df=df.apply(np.sum, axis=1)
print("Modified DataFrame")
print(modified_df)
출력:
Original DataFrame
X Y
0 1 4
1 2 1
2 3 8
Modified DataFrame
0 5
1 3
2 11
dtype: int64
여기서는 axis=1
을 설정 했으므로 한 번에 각 행에 np.sum
이 적용됩니다.
그래서 우리는df.apply()
메소드를 사용한 후 모든 행의 개별 요소의 합계를 얻습니다.
import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3,],
'Y': [4, 1, 8]})
print(df)
modified_df=df.apply(lambda x: (x**2) if x.name in [0,1] else x,
axis=1)
print(modified_df)
출력:
X Y
0 1 4
1 2 1
2 3 8
X Y
0 1 16
1 4 1
2 3 8
특정 행에만 함수를 적용하려면 if 문을 사용하여 함수 정의를 수정하여 행을 필터링합니다. 이 예에서 함수는 색인이 0
및 1
인 행, 즉 첫 번째 및 두 번째 행의 값만 수정합니다.
예제 코드: result_type
매개 변수가있는DataFrame.apply()
메서드
result_type
매개 변수의 기본값, 즉None
을 사용하면 수정없이DataFrame
을 반환합니다.
import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3,],
'Y': [4, 1, 8]})
print("Original DataFrame")
print(df)
modified_df=df.apply(lambda x:[1,1],axis=1)
print("Modified DataFrame")
print(modified_df)
출력:
Original DataFrame
X Y
0 1 4
1 2 1
2 3 8
Modified DataFrame
0 [1, 1]
1 [1, 1]
2 [1, 1]
dtype: object
위의 예에서 각 행은 한 번에 함수에 전달되며 행의 값은 [1,1]
로 설정됩니다.
함수가 DataFrame
에서 작동 한 후 결과 유형을 수정하려면 필요에 따라 result_type
값을 설정할 수 있습니다.
import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3,],
'Y': [4, 1, 8]})
print("Original DataFrame")
print(df)
modified_df=df.apply(lambda x:[1,1],
axis=1,
result_type='expand')
print("Modified DataFrame")
print(modified_df)
출력:
Original DataFrame
X Y
0 1 4
1 2 1
2 3 8
Modified DataFrame
0 1
0 1 1
1 1 1
2 1 1
result_type = 'expand'
를 설정하면 모든 목록과 유사한 값이 데이터 프레임의 열로 확장됩니다.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn