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

Python으로 DataFrame 첫 번째 열 이동하기: 입력값이 3과 5로 나누어지면 누락된 값 채우기

이 글에서는 pandas DataFrame의 첫 번째 열을 오른쪽으로 이동(shift)하고, 사용자로부터 입력받은 값이 3과 5로 모두 나누어지는 경우 누락된 값을 해당 값으로 채우는 Python 프로그램을 작성하는 방법을 단계별로 알아보겠습니다.

입력 예시

다음과 같은 DataFrame이 있다고 가정해 보겠습니다. 첫 번째 열을 이동하고 누락된 값을 채우면 결과는 아래와 같습니다.

 one two three
0 1   10 100
1 2   20 200
2 3   30 300
enter the value 15
 one two three
0 15  1   10
1 15  2   20
2 15  3   30

해결 방법

이 문제는 다음과 같은 단계로 해결할 수 있습니다.

  • 먼저 DataFrame을 정의합니다.

  • 아래 코드를 사용하여 첫 번째 열을 이동합니다.

data.shift(periods=1,axis=1)
  • 사용자로부터 값을 입력받고, 그 값이 3과 5로 나누어지는지 확인합니다. 조건이 참이면 fill_value 옵션을 사용해 누락된 값을 사용자가 입력한 값으로 채우고, 그렇지 않으면 기본 동작대로 NaN으로 남겨둡니다.

user_input = int(input("enter the value"))
if(user_input%3==0 and user_input%5==0):
   print(data.shift(periods=1,axis=1,fill_value=user_input))
else:
   print(data.shift(periods=1,axis=1))

전체 코드 예제

더 잘 이해할 수 있도록 전체 구현 과정을 살펴보겠습니다.

import pandas as pd
data= pd.DataFrame({'one': [1,2,3],
                     'two': [10,20,30],
                     'three': [100,200,300]})
print(data)
user_input = int(input("enter the value"))
if(user_input%3==0 and user_input%5==0):
   print(data.shift(periods=1,axis=1,fill_value=user_input))
else:
   print(data.shift(periods=1,axis=1))

출력 1

입력값이 15인 경우(3과 5로 모두 나누어지므로 누락된 값이 15로 채워집니다):

 one two three
0 1   10   100
1 2   20   200
2 3   30   300
enter the value 15
 one two three
0 15   1 10
1 15   2 20
2 15   3 30

출력 2

입력값이 3인 경우(3으로는 나누어지지만 5로는 나누어지지 않으므로 누락된 값이 NaN으로 표시됩니다):

one two three
0    1    10 100
1    2    20 200
2    3    30 300
enter the value 3
  one two three
0 NaN 1.0 10.0
1 NaN 2.0 20.0
2 NaN 3.0 30.0

핵심 포인트 정리

  • shift(periods=1, axis=1): 열 방향(axis=1)으로 데이터를 한 칸씩 이동하며, 맨 앞에 새로운 결측치(NaN)가 생성됩니다.

  • fill_value: shift 연산 시 발생하는 결측치를 지정한 값으로 대체하는 옵션입니다.

  • 나눗셈 조건 확인: user_input % 3 == 0 and user_input % 5 == 0 조건문으로 입력값이 3과 5의 공배수인지 검사합니다.