Python
 Computer >> コンピューター >  >> プログラミング >> Python

PythonでPandas Seriesのすべての要素を四捨五入する方法

PandasのSeriesに含まれる浮動小数点数を四捨五入したい場面はよくあります。本記事では、Seriesのすべての要素を丸めるための2つの方法を、具体的なコード例とともに解説します。

入力データと期待される出力

まず、以下のような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()メソッドが標準で用意されています。これが最もシンプルで推奨される方法です。

手順

  • リストからSeriesを作成します。

  • 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

たった1行で処理が完了するため、実務ではこの方法を使うのがベストです。

方法2:forループと組み込み関数round()を使う

Pythonの組み込み関数であるround()をforループと組み合わせて、各要素を個別に丸める方法もあります。処理の流れを細かく制御したい場合に有効です。

手順

  • Seriesを作成します。

  • 空のリストを用意し、forループで各要素を取り出しながらround()で丸めた値を追加していきます。

  • 最後に、丸め済みのリストから新しい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

なお、Pythonの組み込みround()は整数型(int)を返すため、出力の表示が「1.0」ではなく「1」になっている点に注意してください。

まとめ

Series全体をまとめて丸める場合はdata.round()が最も簡潔で効率的です。一方、要素ごとの処理ロジックをカスタマイズしたい場合や、他の処理と組み合わせたい場合は、forループと組み込みround()を活用する方法が役立ちます。用途に応じて使い分けましょう。

  1. Pythonで数Nの桁数を数えるプログラムの書き方

    ある数Nが与えられたとき、その数に含まれる桁の総数を求めることを考えましょう。例えば以下のようなケースです。入力例1:N = 891452出力:6解説: 与えられた数891452は6桁の数字で構成されているため、この場合は「6」を返します。入力例2:N = 0074515出力:5解説: 先頭の0を除いた有効な桁数が5桁であるため、出力は「5」となります。この問題を解くためのアプローチこの問題は、次の手順で解決できます。数値nを入力として受け取ります。関数countDigits(n)が入力nを受け取り、桁数をカウントして返します。数値の各桁に対してループ処理を行い、カウンター変数を1ずつ増加させ

  2. Pythonで整数配列の重複を除去し、個別の要素だけを出力する方法

    整数型の配列が与えられ、その中には重複した要素が含まれている場合があります。この記事では、重複を取り除いて個別(ユニーク)な値だけを出力するPythonプログラムを解説します。 実行例 入力:A = [1, 2, 3, 4, 2, 3, 5, 6] 出力:[1, 2, 3, 4, 5, 6] アルゴリズム このプログラムは次の手順で動作します。 配列の要素を入力として受け取ります。 各要素を先頭から順番に1つずつ取り出します。 取り出した要素が、それ以前にすでに出力されたものかどうかを確認します。 初期値0のフラグ変数を用意し、すでに表示済みなら1、未表示なら0のままにします。 フラ