Pandas DataFrame で値を丸める 4 つの方法は次のとおりです。
- 単一の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 では次のようになります。
出力:

値を小数点以下 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 桁に丸められていることがわかります。
出力:

あるいは、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 を使用すると同じ結果が得られます。
出力:

(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)
すべての値が切り上げられていることがわかります。
出力:

(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)
コードを実行すると、次のようになります。
出力:

これまで、単一の DataFrame 列の値を丸める方法を説明しました。
しかし、複数の列を含む DataFrame 全体の値を丸めたい場合はどうすればよいでしょうか?
この目標を達成するには、以下の 4 番目のアプローチを使用できます。
(4) DataFrame全体の小数点以下の特定の桁に丸める
複数の列を持つ新しいデータセットがあるとします。
values_1 | values_2 | values_3 |
5.52132 | 22.7352 | AAA |
6.572935 | 11.82 | ABC |
7.21 | 23.75839 | XYZ |
8.755 | 4.22 | AABB |
9.9989 | 15.1173 | PPPP |
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 が得られます。
出力:

数値を含むすべての列 (つまり、「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 桁に丸められていることがわかります。
出力:

あるいは、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 を使用すると同じ結果が得られます。
出力:
