Python Pandas-함수 애플리케이션

자신 또는 다른 라이브러리의 함수를 Pandas 개체에 적용하려면 세 가지 중요한 방법을 알고 있어야합니다. 방법은 아래에 설명되어 있습니다. 사용할 적절한 방법은 함수가 전체 DataFrame, 행 또는 열 단위 또는 요소 단위에서 작동할지 여부에 따라 다릅니다.

  • 테이블 현명한 함수 응용 프로그램 : pipe ()
  • 행 또는 열 현명한 함수 응용 프로그램 : apply ()
  • 요소 별 함수 적용 : applymap ()

테이블 방식의 함수 적용

함수와 적절한 수의 매개 변수를 파이프 인수로 전달하여 사용자 지정 작업을 수행 할 수 있습니다. 따라서 전체 DataFrame에서 작업이 수행됩니다.

예를 들어 DataFrame의 모든 요소에 값 2를 추가합니다. 그때,

가산기 기능

가산기 함수는 두 개의 숫자 값을 매개 변수로 더하고 합계를 반환합니다.

def adder(ele1,ele2):
   return ele1+ele2

이제 사용자 지정 함수를 사용하여 DataFrame에서 작업을 수행합니다.

df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3'])
df.pipe(adder,2)

전체 프로그램을 보자-

import pandas as pd
import numpy as np

def adder(ele1,ele2):
   return ele1+ele2

df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3'])
df.pipe(adder,2)
print df.apply(np.mean)

이것의 output 다음과 같습니다-

col1       col2       col3
0   2.176704   2.219691   1.509360
1   2.222378   2.422167   3.953921
2   2.241096   1.135424   2.696432
3   2.355763   0.376672   1.182570
4   2.308743   2.714767   2.130288

행 또는 열 현명한 함수 응용 프로그램

DataFrame 또는 Panel의 축을 따라 임의의 기능을 적용 할 수 있습니다. apply()기술 통계 방법과 마찬가지로 선택적 축 인수를 사용하는 방법입니다. 기본적으로 작업은 각 열을 배열과 같이 사용하여 열 방식으로 수행합니다.

예 1

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3'])
df.apply(np.mean)
print df.apply(np.mean)

이것의 output 다음과 같습니다-

col1   -0.288022
col2    1.044839
col3   -0.187009
dtype: float64

통과함으로써 axis 매개 변수, 작업은 행 방식으로 수행 할 수 있습니다.

예 2

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3'])
df.apply(np.mean,axis=1)
print df.apply(np.mean)

이것의 output 다음과 같습니다-

col1    0.034093
col2   -0.152672
col3   -0.229728
dtype: float64

예제 3

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3'])
df.apply(lambda x: x.max() - x.min())
print df.apply(np.mean)

이것의 output 다음과 같습니다-

col1   -0.167413
col2   -0.370495
col3   -0.707631
dtype: float64

요소 현명한 기능 적용

모든 함수가 벡터화 될 수있는 것은 아닙니다 (다른 배열이나 값을 반환하는 NumPy 배열이 아님). applymap() DataFrame 및 analogously map() 시리즈에서는 단일 값을 취하고 단일 값을 반환하는 모든 Python 함수를 허용합니다.

예 1

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3'])

# My custom function
df['col1'].map(lambda x:x*100)
print df.apply(np.mean)

이것의 output 다음과 같습니다-

col1    0.480742
col2    0.454185
col3    0.266563
dtype: float64

예 2

import pandas as pd
import numpy as np

# My custom function
df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3'])
df.applymap(lambda x:x*100)
print df.apply(np.mean)

이것의 output 다음과 같습니다-

col1    0.395263
col2    0.204418
col3   -0.795188
dtype: float64