이 글에서는 파이썬(Python)을 사용해 소문자 알파벳 중 짝수 인덱스에 위치한 문자들만 추출한 뒤, 그중 5개를 무작위로 선택하여 판다스(pandas) 시리즈(Series)로 만드는 두 가지 방법을 소개합니다.
풀이 방법 1: 슬라이싱 활용하기
가장 간결한 방법은 파이썬의 슬라이싱(slicing) 기능을 이용하는 것입니다. 단계별로 살펴보면 다음과 같습니다.
string.ascii_lowercase로 소문자 알파벳 전체('a'~'z')를 가져옵니다.슬라이싱
[::2]를 사용하면 인덱스 0, 2, 4,... 즉 짝수 인덱스에 해당하는 문자들만 한 번에 추출할 수 있습니다.random.sample()함수로 추출된 문자 목록에서 5개를 중복 없이 무작위로 선택합니다.마지막으로 선택된 값들을
pd.Series()에 넣어 시리즈를 생성합니다.
예제 코드
import pandas as pd
import string
import random as r
chars = string.ascii_lowercase
print("lowercase alphabets are:-", chars)
chars_list = list(chars)
data = r.sample(chars_list[::2], 5)
print("random even index char's are:-", data)
result = pd.Series(data)
print("Series:\n", result)실행 결과
lowercase alphabets are:- abcdefghijklmnopqrstuvwxyz random even index char's are:- ['w', 'k', 'i', 'u', 'm'] Series: 0 w 1 k 2 i 3 u 4 m dtype: object
풀이 방법 2: 반복문으로 직접 필터링하기
슬라이싱 대신 for 반복문과 index() 메서드를 사용해 짝수 인덱스 요소를 직접 찾는 방식도 가능합니다.
소문자 알파벳을 리스트로 정의합니다.
for루프를 돌면서 각 문자의 인덱스를 확인하고, 인덱스를 2로 나눈 나머지가 0인(짝수 인덱스) 문자만 새로운 리스트에 추가합니다.필터링된 리스트에서
random.sample()로 5개를 추출한 후 바로 시리즈로 변환합니다.
예제 코드
import string
import pandas as pd
import random as r
l = list(string.ascii_lowercase)
ls = []
for i in l:
if l.index(i) % 2 == 0:
ls.append(i)
data = pd.Series(r.sample(ls, 5))
print("Series:\n", data)실행 결과
Series: 0 o 1 i 2 q 3 c 4 a dtype: object
정리
두 방법 모두 동일한 결과를 얻을 수 있지만, 방법 1의 슬라이싱([::2]) 방식이 코드가 더 짧고 가독성이 좋아 일반적으로 권장됩니다. 반면 방법 2는 반복문의 동작 원리를 학습하는 데 유용합니다. 참고로 random.sample()은 실행할 때마다 다른 문자를 선택하므로 출력 결과는 매번 달라질 수 있습니다.