Pandasで数値型(桁数、カテゴリ化、カンマ区切り文字列を変換)

はじめに

PandasはPythonでデータ解析を行う際に非常に便利なライブラリです。データを扱う際に特に頻繁に使用されるのが数値データです。本記事では、Pandasを使用して数値データの桁数の調整、カンマ区切り文字列への変換、および数値のカテゴリ化について解説します。

PandasのDataFrameと数値データについて

Pandasの主要なデータ構造の1つはDataFrameです。DataFrameは2次元のデータ構造であり、テーブルのような形式でデータを扱うことができます。数値データは通常、DataFrameの特定の列に格納されます。ここでは、DataFrameの数値データに対して様々な処理を行う方法を説明します。

DataFrameの数値データの桁数を調整する: round()メソッド

DataFrameの数値データの桁数を調整するためには、round()メソッドを使用します。このメソッドは数値を指定した桁数に四捨五入します。

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’という新しい列に格納しています。

   value  rounded_value
0  1.23456789           1.23
1  2.34567890           2.35
2  3.45678901           3.46

上記のように、指定した桁数に四捨五入された数値が新しい列に追加されます。

DataFrameの数値をカンマ区切り文字列に変換する: apply()メソッドとformat関数

# カンマ区切り文字列に変換する関数
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’という新しい列に格納しています。

   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()メソッドを使用します。このメソッドは連続した数値データを指定した範囲に分割し、それぞれの範囲に対応するカテゴリを割り当てます。

# サンプルの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’として割り当てています。

   value category
0     10      low
1     20      low
2     30   medium
3     40   medium
4     50     high

各数値が指定した範囲に応じてカテゴリに分類されます。

数値データの処理でよく使う関数とメソッド: abs()メソッド、clip()メソッド等

数値データの処理にはさまざまな関数やメソッドがあります。以下にいくつかの一般的なものを紹介します。

abs()メソッド

abs()メソッドは数値の絶対値を計算します。

# サンプルのDataFrame作成
data = {'value': [-1, 2, -3]}
df = pd.DataFrame(data)
# 絶対値を計算
df['absolute_value'] = df['value'].abs()
print(df)

上記のコードでは、’value’という列に含まれる数値データの絶対値を計算し、’absolute_value’という新しい列に格納しています。

clip()メソッド

clip()メソッドは数値を指定した範囲内に制約します。範囲外の値は範囲の最小値または最大値に置き換えられます。

# サンプルの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を駆使して数値データの処理を行うことで、データ解析や集計、可視化などの作業をスムーズに行うことができます。ぜひこれらの機能を活用して、効率的なデータ処理を実現してください。