
はじめに
PandasはPythonでデータ解析を行う際に非常に便利なライブラリです。データを扱う際に特に頻繁に使用されるのが数値データです。本記事では、Pandasを使用して数値データの桁数の調整、カンマ区切り文字列への変換、および数値のカテゴリ化について解説します。
PandasのDataFrameと数値データについて
Pandasの主要なデータ構造の1つはDataFrameです。DataFrameは2次元のデータ構造であり、テーブルのような形式でデータを扱うことができます。数値データは通常、DataFrameの特定の列に格納されます。ここでは、DataFrameの数値データに対して様々な処理を行う方法を説明します。
DataFrameの数値データの桁数を調整する: round()メソッド
DataFrameの数値データの桁数を調整するためには、round()メソッドを使用します。このメソッドは数値を指定した桁数に四捨五入します。
1 2 3 4 5 6 7 | import pandas as pd # サンプルのDataFrame作成 data = { 'value' : [ 1.23456789 , 2.34567890 , 3.45678901 ]} df = pd.DataFrame(data) # 桁数を指定して四捨五入 df[ 'rounded_value' ] = df[ 'value' ]. round ( 2 ) print (df) |
上記のコードでは、’value’という列に含まれる数値データを2桁に四捨五入し、’rounded_value’という新しい列に格納しています。
1 2 3 4 | value rounded_value 0 1.23456789 1.23 1 2.34567890 2.35 2 3.45678901 3.46 |
上記のように、指定した桁数に四捨五入された数値が新しい列に追加されます。
DataFrameの数値をカンマ区切り文字列に変換する: apply()メソッドとformat関数
1 2 3 4 5 6 7 8 9 | # カンマ区切り文字列に変換する関数 def format_with_commas(value): return '{:,.2f}' . format (value) # サンプルのDataFrame作成 data = { 'value' : [ 1000 , 2000 , 3000 ]} df = pd.DataFrame(data) # カンマ区切り文字列に変換 df[ 'formatted_value' ] = df[ 'value' ]. apply (format_with_commas) print (df) |
上記のコードでは、’value’という列に含まれる数値データをカンマ区切り文字列に変換し、’formatted_value’という新しい列に格納しています。
1 2 3 4 | value formatted_value 0 1000 1 , 000.00 1 2000 2 , 000.00 2 3000 3 , 000.00 |
指定した形式にフォーマットされた数値が新しい列に追加されます。
DataFrameの数値データをカンマ区切り文字列に変換するためには、apply()メソッドとformat関数を組み合わせて使用します。apply()メソッドは指定した関数を列または行に適用し、新しい列または行を作成します。format関数は数値を指定した形式にフォーマットするために使用されます。
DataFrameの数値をカテゴリ化する: cut()メソッド
DataFrameの数値データをカテゴリ化するためには、cut()メソッドを使用します。このメソッドは連続した数値データを指定した範囲に分割し、それぞれの範囲に対応するカテゴリを割り当てます。
1 2 3 4 5 6 | # サンプルのDataFrame作成 data = { 'value' : [ 10 , 20 , 30 , 40 , 50 ]} df = pd.DataFrame(data) # 数値をカテゴリ化 df[ 'category' ] = pd.cut(df[ 'value' ], bins = [ 0 , 20 , 40 , 60 ], labels = [ 'low' , 'medium' , 'high' ]) print (df) |
上記のコードでは、’value’という列に含まれる数値データを範囲[0, 20, 40, 60]で分割し、それぞれに対応するカテゴリを’low’、’medium’、’high’として割り当てています。
1 2 3 4 5 6 | value category 0 10 low 1 20 low 2 30 medium 3 40 medium 4 50 high |
各数値が指定した範囲に応じてカテゴリに分類されます。
数値データの処理でよく使う関数とメソッド: abs()メソッド、clip()メソッド等
数値データの処理にはさまざまな関数やメソッドがあります。以下にいくつかの一般的なものを紹介します。
abs()メソッド
abs()メソッドは数値の絶対値を計算します。
1 2 3 4 5 6 | # サンプルのDataFrame作成 data = { 'value' : [ - 1 , 2 , - 3 ]} df = pd.DataFrame(data) # 絶対値を計算 df[ 'absolute_value' ] = df[ 'value' ]. abs () print (df) |
上記のコードでは、’value’という列に含まれる数値データの絶対値を計算し、’absolute_value’という新しい列に格納しています。
clip()メソッド
clip()メソッドは数値を指定した範囲内に制約します。範囲外の値は範囲の最小値または最大値に置き換えられます。
1 2 3 4 5 6 | # サンプルのDataFrame作成 data = { 'value' : [ 10 , 20 , 30 , 40 , 50 ]} df = pd.DataFrame(data) # 数値を範囲内に制約 df[ 'clipped_value' ] = df[ 'value' ].clip(lower = 20 , upper = 40 ) print (df) |
上記のコードでは、’value’という列に含まれる数値データを範囲[20, 40]に制約し、範囲外の値を範囲の最小値または最大値で置き換えています。
まとめ
Pandasを使用すると、数値データの桁数の調整やカンマ区切り文字列への変換、数値のカテゴリ化などの処理が簡単に行えます。本記事では、round()メソッドを用いた桁数の調整、apply()メソッドとformat関数を組み合わせたカンマ区切り文字列への変換、およびcut()メソッドを用いた数値のカテゴリ化について解説しました。また、abs()メソッドやclip()メソッドなど、数値データの処理でよく使われる関数やメソッドについても紹介しました。
Pandasを駆使して数値データの処理を行うことで、データ解析や集計、可視化などの作業をスムーズに行うことができます。ぜひこれらの機能を活用して、効率的なデータ処理を実現してください。