Pandas DataFrame DataFrame.transform() 함수

Minahil Noor 2023년1월30일
  1. pandas.DataFrame.transform()구문
  2. 예제 코드: DataFrame.transform()
  3. 예제 코드: sqrt 문자열을 함수로 사용하는DataFrame.transform()
  4. 예제 코드: 함수 목록을 전달하는DataFrame.transform()
  5. DataFrame.apply()DataFrame.transform()함수
Pandas DataFrame DataFrame.transform() 함수

Python Pandas DataFrame.transform()DataFrame에 함수를 적용하고 DataFrame을 변환합니다. 적용 할 함수는transform()함수에 매개 변수로 전달됩니다. 변환 된DataFrame은 원래DataFrame과 동일한 축 길이를 가져야합니다.

pandas.DataFrame.transform()구문

DataFrame.transform(func, axis, *args, **kwargs)

매개 변수

func DataFrame에 적용되는 기능입니다. 그것은DataFrame의 값에 변화를 가져옵니다. 함수, 함수 이름 문자열, 함수 목록 또는 함수 이름 또는 축 레이블 사전 일 수 있습니다.
axis 정수 또는 문자열입니다. 대상 축에 대해 행 또는 열을 알려줍니다. 행의 경우 0 또는 'index', 열의 경우 1 또는 'columns'이 될 수 있습니다.
*args 함수에 전달할 위치 인수입니다.
**kwargs 함수에 전달할 추가 키워드 인수입니다.

반환

원본DataFrame과 길이가 같은 변환 된DataFrame을 반환합니다. 반환 된DataFrame의 길이가 같지 않으면 함수는ValueError를 발생시킵니다.

예제 코드: DataFrame.transform()

먼저 DataFrame의 각 값에 숫자를 추가하여이 함수를 시도해 보겠습니다.

import pandas as pd

dataframe = pd.DataFrame({
                            'A': 
                                {0: 6, 
                                1: 20, 
                                2: 80,
                                3: 78,
                                4: 95}, 
                            'B': 
                                {0: 60, 
                                1: 50, 
                                2: 7,
                                3: 67,
                                4: 54}
                        })

print(dataframe)

DataFrame의 예는 다음과 같습니다.

    A   B
0   6  60
1  20  50
2  80   7
3  78  67
4  95  54
5  98  34

이 함수에는 하나의 필수 매개 변수, 즉 func만 있습니다. 이제이 함수를 사용하여 DataFrame의 각 값에 20을 더합니다.

import pandas as pd

dataframe = pd.DataFrame(
    {"A": {0: 6, 1: 20, 2: 80, 3: 78, 4: 95}, "B": {0: 60, 1: 50, 2: 7, 3: 67, 4: 54}}
)

dataframe1 = dataframe.transform(func=lambda x: x + 20)
print(dataframe1)

출력:

     A   B
0   26  80
1   40  70
2  100  27
3   98  87
4  115  74
5  118  54

lambda 키워드는 여기서 익명의 추가 기능을 선언하는 데 사용됩니다.

예제 코드: sqrt 문자열을 함수로 사용하는DataFrame.transform()

import pandas as pd

dataframe = pd.DataFrame(
    {"A": {0: 6, 1: 20, 2: 80, 3: 78, 4: 95}, "B": {0: 60, 1: 50, 2: 7, 3: 67, 4: 54}}
)

dataframe1 = dataframe.transform(func="sqrt")
print(dataframe1)

출력:

          A         B
0  2.449490  7.745967
1  4.472136  7.071068
2  8.944272  2.645751
3  8.831761  8.185353
4  9.746794  7.348469
5  9.899495  5.830952

여기서는lambda 함수를 전달하는 대신 함수 이름을 문자열로 전달했습니다.

예제 코드: 함수 목록을 전달하는DataFrame.transform()

import pandas as pd

dataframe = pd.DataFrame(
    {"A": {0: 6, 1: 20, 2: 80, 3: 78, 4: 95}, "B": {0: 60, 1: 50, 2: 7, 3: 67, 4: 54}}
)

dataframe1 = dataframe.transform(func=["sqrt", "exp"])
print(dataframe1)

출력:

          A                       B              
       sqrt           exp      sqrt           exp
0  2.449490  4.034288e+02  7.745967  1.142007e+26
1  4.472136  4.851652e+08  7.071068  5.184706e+21
2  8.944272  5.540622e+34  2.645751  1.096633e+03
3  8.831761  7.498417e+33  8.185353  1.252363e+29
4  9.746794  1.811239e+41  7.348469  2.830753e+23

두 개의 함수 이름 목록 즉,[ 'sqrt', 'exp']func로 전달했습니다. 반환 된DataFrame에는 추가 함수로 인해 두 개의 추가 열이 포함됩니다.

DataFrame.apply()DataFrame.transform()함수

DataFrame.apply() 함수를 사용하여 위의 결과를 얻을 수도 있습니다. 그러나이 두 함수를 비교해 보면DataFrame.transform()함수가 복잡한 조작을 처리하는 데 더 효율적이라고 말할 수 있습니다.

관련 문장 - Pandas DataFrame