Pandas DataFrame で値を丸める 4 つの方法は次のとおりです。

  1. 単一のDataFrame列の特定の小数点以下の桁数に丸める
df['DataFrame column'].round(decimals = number of decimal places needed)

2. 単一のDataFrame列の値を切り上げる

df['DataFrame column'].apply(np.ceil)

3. 単一のDataFrame列の値を切り捨てる

df['DataFrame column'].apply(np.floor)

4. DataFrame全体の小数点以下の特定の桁に丸める

df.round(decimals = number of decimal places needed)

それでは、実際の例を使用して上記のアプローチをどのように適用するかを見てみましょう。

Pandas DataFrame で値を丸める 4 つの方法

(1)単一のDataFrame列の特定の小数点以下の桁数に丸める

次の値(小数点以下の桁数が可変)を含むデータセットがあるとします。

values
5.52132
6.572935
7.21
8.755
9.9989



次に、Python でこれらの値を取得するための DataFrame を作成します。

import pandas as pd

data = {'values': [5.52132, 6.572935, 7.21, 8.755, 9.9989]}

df = pd.DataFrame(data)

print(df)

DataFrame は Python では次のようになります。

出力:

Pandas DataFrame の値を丸める 1

値を小数点以下 3 桁に丸めることが目標だとします。

次のようにして、特定の小数点以下の桁数に丸めることができます (単一の DataFrame 列の下)。

df['DataFrame Column'].round(decimals = number of decimal places needed)

したがって、小数点以下 3 桁に丸めるには、次の構文を使用する必要があります。

df['values'].round(decimals=3)

したがって、完全な Python コードは次のようになります。

import pandas as pd

data = {'values': [5.52132, 6.572935, 7.21, 8.755, 9.9989]}

df = pd.DataFrame(data)

df['values'] = df['values'].round(decimals=3)

print(df)

値が小数点以下 3 桁に丸められていることがわかります。

出力:

Pandas DataFrame の値を丸める 2

あるいは、Numpy を使用して値を小数点以下 3 桁に丸めることもできます。

np.round(df['DataFrame column'], decimals = number of decimal places needed)

以下は Python コードです。

import pandas as pd
import numpy as np

data = {'values': [5.52132, 6.572935, 7.21, 8.755, 9.9989]}

df = pd.DataFrame(data)

df['values'] = np.round(df['values'], decimals=3)

print(df)

NumPy を使用すると同じ結果が得られます。

出力:

Pandas DataFrame の値を丸める 3

(2)単一のDataFrame列の値を切り上げる

DataFrame 内の値を切り上げたい場合はどうすればよいでしょうか?

この目標を達成するには、値を切り上げる 2 番目の方法を使用できます。

df['DataFrame Column'].apply(np.ceil)

この例のコンテキストでは、次の構文を使用する必要があります。

df['values'].apply(np.ceil)

値を切り上げる完全な Python コードは次のとおりです。

import pandas as pd
import numpy as np

data = {'values': [5.52132, 6.572935, 7.21, 8.755, 9.9989]}

df = pd.DataFrame(data)

df['values'] = df['values'].apply(np.ceil) 

print(df)

すべての値が切り上げられていることがわかります。

出力:

Pandas DataFrame の値を丸める 4

(3)単一のDataFrame列の値を切り捨てる

値を切り捨てる必要がある場合は、3 番目の方法を使用できます。

df['DataFrame Column'].apply(np.floor)

私たちの例:

df['values'].apply(np.floor)

値を切り捨てる完全な Python コードは次のとおりです。

import pandas as pd
import numpy as np

data = {'values': [5.52132, 6.572935, 7.21, 8.755, 9.9989]}

df = pd.DataFrame(data)

df['values'] = df['values'].apply(np.floor)

print(df)

コードを実行すると、次のようになります。

出力:

Pandas DataFrame の値を丸める 5

これまで、単一の DataFrame 列の値を丸める方法を説明しました。

しかし、複数の列を含む DataFrame 全体の値を丸めたい場合はどうすればよいでしょうか?

この目標を達成するには、以下の 4 番目のアプローチを使用できます。

(4) DataFrame全体の小数点以下の特定の桁に丸める

複数の列を持つ新しいデータセットがあるとします。

values_1values_2values_3
5.5213222.7352AAA
6.57293511.82ABC
7.2123.75839XYZ
8.7554.22AABB
9.998915.1173PPPP

Python では DataFrame は次のようになります。

import pandas as pd

data = {'values_1': [5.52132, 6.572935, 7.21, 8.755, 9.9989],
        'values_2': [22.7352, 11.82, 23.75839, 4.22, 15.1173],
        'values_3': ['AAA', 'ABC', 'XYZ', 'AABB', 'PPPP']
        }

df = pd.DataFrame(data)

print(df)

Python でコードを実行すると、次の DataFrame が得られます。

出力:

Pandas DataFrame の値を丸める 6

数値を含むすべての列 (つまり、「values_1」列と「values_2」列) の値を小数点以下 2 桁に丸めることが目標だとします。

次に、4 番目の方法を使用して、すべての数値列の値を丸めることができます。

df.round(decimals = number of decimal places needed)

これは、この例に使用できるコードです。

import pandas as pd

data = {'values_1': [5.52132, 6.572935, 7.21, 8.755, 9.9989],
        'values_2': [22.7352, 11.82, 23.75839, 4.22, 15.1173],
        'values_3': ['AAA', 'ABC', 'XYZ', 'AABB', 'PPPP']
        }

df = pd.DataFrame(data)

df = df.round(decimals=2)

print(df)

数値データを含む 2 つの列全体で、値が小数点以下 2 桁に丸められていることがわかります。

出力:

Pandas DataFrame の値を丸める 7

あるいは、NumPy を使用して同じ結果を得ることもできます。

np.round(df, decimals = number of decimal places needed)

したがって、完全な Python コードは次のようになります。

import pandas as pd
import numpy as np

data = {'values_1': [5.52132, 6.572935, 7.21, 8.755, 9.9989],
        'values_2': [22.7352, 11.82, 23.75839, 4.22, 15.1173],
        'values_3': ['AAA', 'ABC', 'XYZ', 'AABB', 'PPPP']
        }

df = pd.DataFrame(data)

df = np.round(df, decimals=2)

print(df)

NumPy を使用すると同じ結果が得られます。

出力:

Pandas DataFrame の値を丸める 8