Pandas DataFrame의 여러 열에 함수 적용
Manav Narula
2021년2월9일
이 기사에서는 Pandas DataFrame의 여러 열에 함수를 적용하는 방법을 소개합니다. 모든 예제 코드에서 아래와 같이 동일한 DataFrame을 사용합니다.
import pandas as pd
import numpy as np
df = pd.DataFrame(
[[5, 6, 7, 8], [1, 9, 12, 14], [4, 8, 10, 6]], columns=["a", "b", "c", "d"]
)
출력:
a b c d
0 5 6 7 8
1 1 9 12 14
2 4 8 10 6
apply()
를 사용하여 Pandas의 열에 함수 적용
apply()
메소드를 사용하면 열이나 행에 걸쳐 전체 DataFrame에 대한 함수를 적용 할 수 있습니다. axis
매개 변수를 행의 경우 0, 열의 경우 1로 설정합니다.
아래에 표시된 예에서는 앞서 정의한 함수를 사용하여 샘플 DataFrame의 값을 증가시킵니다.
import pandas as pd
import numpy as np
df = pd.DataFrame(
[[5, 6, 7, 8], [1, 9, 12, 14], [4, 8, 10, 6]], columns=["a", "b", "c", "d"]
)
def x(a):
return a + 1
df_new = df.apply(x, axis=1)
print("The original dataframe:")
print(df)
print("The new dataframe:")
print(df_new)
출력:
The original dataframe:
a b c d
0 5 6 7 8
1 1 9 12 14
2 4 8 10 6
The new dataframe:
a b c d
0 6 7 8 9
1 2 10 13 15
2 5 9 11 7
다음과 같이 여러 열에 함수를 적용 할 수도 있습니다.
import pandas as pd
import numpy as np
df = pd.DataFrame(
[[5, 6, 7, 8], [1, 9, 12, 14], [4, 8, 10, 6]], columns=["a", "b", "c", "d"]
)
print("The original dataframe:")
print(df)
def func(x):
return x[0] + x[1]
df["e"] = df.apply(func, axis=1)
print("The new dataframe:")
print(df)
출력:
The original dataframe:
a b c d
0 5 6 7 8
1 1 9 12 14
2 4 8 10 6
The new dataframe:
a b c d e
0 5 6 7 8 11
1 1 9 12 14 10
2 4 8 10 6 12
새로 추가 된 e
열은 a
와 b
열의 데이터 합계입니다. DataFrame 자체는 함수에 전달되는 숨겨진 인수입니다. 위의 예와 같이 인덱스를 사용하거나 아래와 같이 열 이름을 사용하여 열에 액세스 할 수 있습니다.
import pandas as pd
import numpy as np
df = pd.DataFrame(
[[5, 6, 7, 8], [1, 9, 12, 14], [4, 8, 10, 6]], columns=["a", "b", "c", "d"]
)
print("The original dataframe:")
print(df)
df["e"] = df.apply(lambda x: x.a + x.b, axis=1)
print("The new dataframe:")
print(df)
위의 예와 동일한 동작을 수행합니다. 여기서는lambda
함수를 사용합니다. x.a
및x.b
는 데이터 프레임의a
및b
열을 나타냅니다.
작가: Manav Narula
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn