English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Pandas 함수 적용

Pandas 인덱스 재구성 작업 예제

귀하의 또는 다른 라이브러리의 함수를 Pandas 객체에 적용하려면, 세 가지 중요한 메서드를 이해해야 합니다. 다음과 같습니다. 사용할 적절한 메서드는 귀하의 함수가 전체 데이터 프레임에 대해 작업할 것인지, 행 작업인지, 열 작업인지, 요소 작업인지에 따라 달라집니다.

표 함수应用程序: pipe() 행 또는 열 함수应用程序: apply() 요소 단위 함수应用程序: applymap()

표 함수应用程序

함수와 적절한 수의 파라미터를 파이프 파라미터로 전달하여 DataFrame에 대한 사용자 정의 작업을 수행할 수 있습니다.

추가기 함수

예를 들어,2값을 DataFrame에 추가합니다. 추가기능은 두 수치 값을 더하고 총 합을 반환합니다.

  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))

실행 결과:

       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

행 또는 열 함수应用程序

apply() 메서드를 사용하여 DataFrame 또는 Panel의 축에 어느 함수도 적용할 수 있습니다. 이 메서드는 설명적 통계 방법과 마찬가지로 선택적인 axis 파라미터를 사용합니다. 기본적으로, 이 작업은 열에 대해 수행되며, 각 열을 배열과 유사한 형태로 간주합니다.

예시 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))

실행 결과:

 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))

실행 결과:

 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))

실행 결과:

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

요소 수준 함수 적용

모든 함수가 벡터화될 수 없습니다(NumPy 배열은 다른 배열을 반환하지 않으며, 어떤 값도 반환하지 않습니다). DataFrame의 applymap() 메서드와 Series의 map() 메서드와 마찬가지로, 단일 값을 입력받고 단일 값을 반환하는 Python 함수를 받아들입니다.

예시 1

 import pandas as pd
 import numpy as np
 df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3'])
 # 사용자 정의 함수
 df['col1'].map(lambda x:x*100)
 print(df.apply(np.mean))

실행 결과:

 col1 0.480742
 col2 0.454185
 col3 0.266563
 dtype: float64

예시 2

 import pandas as pd
 import numpy as np
 # 사용자 정의 함수
 df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3'])
 df.applymap(lambda x:x*100)
 print(df.apply(np.mean))

실행 결과:

 col1 0.395263
 col2 0.204418
 col3 -0.795188
 dtype: float64