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

Python으로 Pandas Series의 모든 요소를 반올림하는 방법

Pandas에서 Series(시리즈)에 포함된 모든 숫자 값을 반올림해야 하는 경우가 종종 있습니다. 이 글에서는 두 가지 방법을 통해 시리즈의 각 요소를 반올림하는 방법을 살펴보겠습니다.

문제 정의

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

0    1.3
1    2.6
2    3.9
3    4.8
4    5.6

출력 — 반올림 결과는 다음과 같습니다.

0    1.0
1    3.0
2    4.0
3    5.0
4    6.0

방법 1: round() 메서드 활용

Pandas Series에는 기본적으로 round() 메서드가 내장되어 있어, 별도의 반복문 없이 한 번의 호출로 모든 요소를 반올림할 수 있습니다. 가장 간단하고 효율적인 방법입니다.

예시 코드

전체 구현 과정은 다음과 같습니다.

import pandas as pd
l = [1.3, 2.6, 3.9, 4.8, 5.6]
data = pd.Series(l)
print(data.round())

출력 결과

0    1.0
1    3.0
2    4.0
3    5.0
4    6.0

data.round()만 호출하면 되기 때문에 코드가 매우 간결합니다. 소수점 자릿수를 지정하고 싶다면 round(1), round(2)처럼 인자를 전달하면 됩니다.

방법 2: for 반복문과 items() 활용

반복문을 직접 사용해 각 값을 처리한 뒤 새로운 시리즈를 만드는 방법도 있습니다. 이 방식은 반올림 외에 추가 로직을 함께 적용해야 할 때 유용합니다.

동작 원리

  • 먼저 Series를 정의합니다.
  • 빈 리스트를 생성하고, for 반복문으로 데이터를 순회하며 반올림된 값을 리스트에 추가합니다.
  • 마지막으로 리스트의 요소들로 새로운 Series를 생성합니다.

예시 코드

import pandas as pd
l = [1.3, 2.6, 3.9, 4.8, 5.6]
data = pd.Series(l)
ls = []
for i, j in data.items():
    ls.append(round(j))
result = pd.Series(ls)
print(result)

출력 결과

0    1
1    3
2    4
3    5
4    6

두 방법의 차이점

방법 1의 round() 메서드는 결과를 float 타입으로 유지하지만, 방법 2에서 Python 내장 함수 round()를 사용하면 정수(int) 타입으로 반환됩니다. 따라서 단순히 반올림만 필요하다면 방법 1을, 값마다 개별적인 처리 로직이 필요하다면 방법 2를 선택하는 것이 좋습니다.