문제 개요
판다스(Pandas) Series에 여러 문자열이 저장되어 있을 때, 그중 길이가 가장 긴 문자열을 찾아 출력하는 프로그램을 파이썬으로 작성해 보겠습니다.
입력 예시 −
다음과 같은 Series가 있다고 가정합니다.
["one", "two", "eleven", "pomegranates", "three"]
이 Series에서 가장 긴 문자열은 "pomegranates"입니다.
해결 방법
이 문제는 아래 단계를 따라 해결할 수 있습니다.
Series를 정의합니다.
최대 길이를 저장할 변수
maxlen의 초기값을 0으로 설정합니다.최장 문자열을 저장할 변수
maxstr을 빈 문자열("")로 초기화합니다.for 반복문으로 Series의 모든 값을 하나씩 순회하면서, if 조건문으로 각 값의 길이를 현재 최대 길이와 비교합니다.
for i in res:
if(len(i) > maxlen):
maxlen = len(i)
maxstr = i마지막으로
maxstr변수에 저장된 값을 출력합니다.
예제 코드
아래 구현 예시를 통해 더 자세히 이해해 보겠습니다.
import pandas as pd
res = pd.Series(["one","two","eleven","pomegranates","three"])
maxlen = len(res[0])
maxstr = ""
for i in res:
if(len(i) > maxlen):
maxlen = len(i)
maxstr = i
print(maxstr)출력 결과
pomegranates
대안 방법: max() 함수 활용하기
반복문 없이 더 간결하게 해결하고 싶다면, 파이썬 내장 함수 max()에 key=len 옵션을 지정하는 방법도 유용합니다. 이 방식은 코드가 짧아지고 가독성이 높아집니다.
import pandas as pd res = pd.Series(["one","two","eleven","pomegranates","three"]) print(max(res, key=len))
실행하면 동일하게 pomegranates가 출력됩니다. 데이터 크기가 큰 경우에는 반복문 방식보다 내장 함수를 활용하는 편이 성능 면에서도 유리할 수 있습니다.