Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 applymap() 함수로 데이터프레임 전체 열의 요소 길이 구하기

판다스(Pandas)에서 applymap() 함수를 사용하면 데이터프레임의 모든 셀에 동일한 연산을 한 번에 적용할 수 있습니다. 이번 글에서는 applymap()과 람다(lambda) 함수를 조합하여 데이터프레임의 모든 열에 있는 각 요소의 문자열 길이를 계산하고 출력하는 방법을 알아보겠습니다.

실행 결과 미리 보기

과일(Fruits)과 도시(City) 두 개의 열로 구성된 데이터프레임이 있을 때, 각 요소의 길이를 구하면 다음과 같은 결과를 얻을 수 있습니다.

Dataframe is:
    Fruits      City
0   Apple       Shimla
1   Orange      Sydney
2   Mango       Lucknow
3   Kiwi        Wellington
Length of the elements in all columns:
    Fruits  City
0   5       6
1   6       6
2   5       7
3   4       10

해결 방법

문제를 해결하기 위해 다음 단계를 따릅니다.

  • 먼저 과일 이름과 도시 이름을 담은 데이터프레임을 정의합니다.
  • df.applymap() 함수 안에 람다 함수를 넣어, 모든 열의 각 요소에 대해 len(str(x))를 적용함으로써 요소의 길이를 계산합니다.
df.applymap(lambda x: len(str(x)))

예제 코드

아래 코드를 통해 실제 동작 과정을 더 자세히 살펴보겠습니다.

import pandas as pd
df = pd.DataFrame({'Fruits': ["Apple","Orange","Mango","Kiwi"],
                   'City' : ["Shimla","Sydney","Lucknow","Wellington"]
                  })
print("Dataframe is:\n",df)
print("Length of the elements in all columns")
print(df.applymap(lambda x:len(str(x))))

출력 결과

Dataframe is:
  Fruits      City
0 Apple       Shimla
1 Orange      Sydney
2 Mango       Lucknow
3 Kiwi        Wellington
Length of the elements in all columns:
    Fruits  City
0   5       6
1   6       6
2   5       7
3   4       10

코드 설명

위 코드가 어떻게 작동하는지 단계별로 살펴보겠습니다.

  • 데이터프레임 생성: pd.DataFrame()을 사용해 'Fruits' 열에는 과일 이름(Apple, Orange, Mango, Kiwi)을, 'City' 열에는 도시 이름(Shimla, Sydney, Lucknow, Wellington)을 저장합니다.
  • applymap 적용: df.applymap(lambda x: len(str(x)))는 데이터프레임의 모든 개별 요소에 람다 함수를 순차적으로 적용합니다.
  • 길이 계산: 람다 함수 내부의 str(x)는 요소를 문자열로 변환한 뒤, len()으로 그 길이를 반환합니다. 예를 들어 'Apple'은 5글자이므로 5가 출력됩니다.

참고 사항

applymap()은 요소 단위(element-wise) 연산에 사용되며, 열 또는 행 단위로 연산할 때는 apply(), 특정 열에만 적용할 때는 map()을 사용하는 것이 좋습니다. 또한 판다스 최신 버전(2.1.0 이상)에서는 DataFrame.applymap() 대신 DataFrame.map() 사용이 권장되므로, 버전에 따라 적절한 메서드를 선택하시기 바랍니다.