Pandas DataFrame DataFrame.transform() 함수
Minahil Noor
2023년1월30일
-
pandas.DataFrame.transform()
구문 -
예제 코드:
DataFrame.transform()
-
예제 코드:
sqrt
문자열을 함수로 사용하는DataFrame.transform()
-
예제 코드: 함수 목록을 전달하는
DataFrame.transform()
-
DataFrame.apply()
대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()
함수가 복잡한 조작을 처리하는 데 더 효율적이라고 말할 수 있습니다.