판다스(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() 사용이 권장되므로, 버전에 따라 적절한 메서드를 선택하시기 바랍니다.