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

파이썬으로 시리즈의 홀수 인덱스를 무작위 대문자 모음으로 교체하는 프로그램 작성하기

pandas Series에서 홀수 인덱스에 해당하는 값들을 대문자 모음(A, E, I, O, U) 중 하나로 무작위 교체하는 파이썬 프로그램을 만들어 보겠습니다. 이런 기법은 데이터 마스킹이나 테스트용 더미 데이터 생성 등에 유용하게 활용할 수 있습니다.

입력 및 출력 예시

다음과 같은 Series가 있다고 가정해 보겠습니다.

0    1
1    2
2    3
3    4
4    5

여기서 홀수 인덱스(1번, 3번)의 값만 대문자 모음으로 교체하면 결과는 아래와 같습니다.

0    1
1    A
2    3
3    U
4    5

해결 방법

  • pd.Series()를 사용해 Series를 생성합니다.

  • 대문자 모음 문자열 "AEIOU"를 리스트 형태로 준비합니다.

  • data.items()로 인덱스와 값을 순회하면서, 인덱스가 홀수인 경우 random.choice()로 무작위 모음을 골라 해당 위치의 값을 교체합니다.

예제 코드

import pandas as pd
import random as r

# 원본 데이터로 Series 생성
data = pd.Series([1, 2, 3, 4, 5])
print("주어진 시리즈:\n", data)

# 대문자 모음 리스트 준비
vowels = list("AEIOU")

# 홀수 인덱스만 무작위 모음으로 교체
for i, j in data.items():
    if i % 2 != 0:
        data[i] = r.choice(vowels)

print("변경된 시리즈:\n", data)

실행 결과

주어진 시리즈:
0    1
1    2
2    3
3    4
4    5
dtype: int64
변경된 시리즈:
0    1
1    O
2    3
3    E
4    5
dtype: object

코드 설명

  • pd.Series([1, 2, 3, 4, 5]) : 리스트를 기반으로 인덱스 0~4를 가진 Series를 생성합니다.

  • list("AEIOU") : 문자열을 한 글자씩 분리해 ['A', 'E', 'I', 'O', 'U'] 리스트를 만듭니다.

  • data.items() : (인덱스, 값) 쌍을 반환하므로 인덱스 기반 조건 처리에 적합합니다.

  • i % 2 != 0 : 인덱스가 홀수인지 판별하는 조건식입니다.

  • r.choice(vowels) : 모음 리스트에서 매번 다른 문자를 무작위로 선택하므로, 실행할 때마다 결과가 달라질 수 있습니다.

참고로 문자열이 섞이면서 Series의 dtype이 int64에서 object로 자동 변경되는 점도 확인할 수 있습니다. 만약 특정 모음만 사용하고 싶다면 vowels 리스트의 구성 요소를 원하는 대로 수정하면 됩니다.