この記事ではPythonで小数点以下を切り捨てする方法(第1位、第2位、第3位などの桁数の指定方法も)について解説していきます。
ポイントとしては
・round()
・math.floor()
・math.trunc()
・Decimal()
を使用することです。
なお、下記の解説では完全な初心者でもわかりやすいようにあえて変数名(あなた自身が名付けていい場所)を少々変わった名称にしております。
そのため、あなた自身がご活用の際には、ここを適切な(英語表記でしっくりくるものが一般的)ものに変更してご活用くださいね。
それでは詳しく見ていきましょう!
Pythonで小数点以下を切り捨てする方法【round(), math.floor(), math.trunc()】
それではまず、Pythonで小数点以下を切り捨てする方法について解説していきます。
jupyter notebookなどの各開発環境を開いて、以下コードをコピペしましょう。
shousuu = 123.456 # 小数を定義
print(round(shousuu)) # 小数点以下を四捨五入
# 123
import math # mathモジュールをインポート
print(math.floor(shousuu)) # 小数点以下を切り捨て
# 123
print(math.trunc(shousuu)) # 小数点以下を切り捨て
# 123
出力結果は以下の通りです。
コード詳細の意味
上記のコードでは、まずshousuu変数に小数123.456を代入しています。
次にround()関数を使用し、shousuuを引数として渡すことで小数点以下を四捨五入した結果を出力しています。
math.floor()とmath.trunc()は、どちらも小数点以下を切り捨てる関数です。
(math.floor()は引数として与えられた数値以下の最大の整数を返し、math.trunc()は引数の整数部分を返します。)
シンプルな処理ですね(^^)/
Pythonで小数点第2位や第3位で切り捨てする方法【math.floor()】
続いては、Pythonで小数点第2位や第3位で切り捨てする方法について解説していきます。
jupyter notebookなどの各開発環境を開いて、以下コードをコピペしましょう。
import math # mathモジュールをインポート
shousuu = 123.456 # 小数を定義
print(math.floor(shousuu * 10 ** 2) / (10 ** 2)) # 小数点第2位で切り捨て
# 123.45
print(math.floor(shousuu * 10 ** 3) / (10 ** 3)) # 小数点第3位で切り捨て
# 123.456
実行結果は以下の通りです。
コードの意味詳細
math.floor()を使って小数点第2位や第3位で切り捨てるには、一旦小数点を右にシフトさせ、整数部分で切り捨てた後に元の位置に戻すという方法を使います。
例えば、小数点第2位で切り捨てる場合は、shousuu * 10 ** 2で小数点を2つ右にシフトさせ(123.456 → 12345.6)、math.floor()で切り捨てた後(12345.6 → 12345)、/ (10 ** 2)で元の位置に戻します(12345 → 123.45)。
同様に、小数点第3位で切り捨てる場合は、shousuu * 10 ** 3と/ (10 ** 3)を使います。
このようにmath.floor()と組み合わせることで、任意の桁で小数点以下を切り捨てることができます。
Pythonで小数点以下を切り捨てする方法【データフレームでok列に元データ、kirisute列に切り捨て結果を出力させる】【math.floor()】
最後に、`math.floor()`を使ってデータフレームの小数点以下を切り捨て、元データと切り捨てたデータをデータフレームに出力する方法を解説します。
jupyter notebookなどの各開発環境を開いて、以下コードをコピペしましょう。
import pandas as pd # pandasをpdとしてインポート
import math # mathモジュールをインポート
suuchilist = [123.456, 456.789, 789.123] # 小数のリストを作成
df = pd.DataFrame({'ok': suuchilist}) # okカラムにリストを追加してデータフレームを作成
df['kirisute'] = df['ok'].apply(math.floor) # math.floor()を使って小数点以下を切り捨て、その結果をkirisuteカラムに追加
print(df)
# ok kirisute
# 0 123.456 123.0
# 1 456.789 456.0
# 2 789.123 789.0
上記のコードでは、`df[‘ok’].apply(math.floor)`という処理で、`ok`カラムの各要素に対して`math.floor()`を適用し、小数点以下を切り捨てています。切り捨てた結果は`kirisute`カラムに追加されます。
最後に、`print(df)`でデータフレームを出力しています。`ok`カラムに元の小数、`kirisute`カラムに切り捨てた結果が表示されています。
このように`math.floor()`を使えば、データフレーム内の小数点以下を簡単に切り捨てることができます。
まとめ 【Python】小数点以下の桁数の指定(第2位、3位など)で切り捨てする方法【math.floor(), math.trunc()など】
ここでは、【Python】小数点以下を切り捨て(桁数の指定:第1位、2位、3位など)する方法を確認しました。
Pythonの扱いになれ、さらに快適な生活を送っていきましょう!