8. データの整形・変換(欠損値処理、型変換、並べ替えなど)¶
pandas を使用してデータの整形や変換を行うことで、データの品質を向上させ、分析を効率的にできるようにします。このセクションでは、欠損値処理、型変換、並べ替えといった操作について説明します。
8.1 欠損値の処理¶
欠損値とは、データの中で値が存在しない箇所のことです。pandas では、NaN
(Not a Number)として扱われます。以下の方法で処理します。
8.1.1 欠損値の確認¶
まずはデータフレームにどこに欠損値があるか確認します。
import pandas as pd
# データフレームの例を作成
data = {'A': [1, 2, None], 'B': [4, None, 6]}
df = pd.DataFrame(data)
# 欠損値を確認
print(df.isnull())
print(df.isnull().sum()) # 列ごとの欠損値の数を集計
8.1.2 欠損値の削除¶
欠損値を含む行または列を削除します。
8.1.3 欠損値の補完¶
欠損値を補完して埋めます。
# 定数で埋める
df_filled_constant = df.fillna(0)
# 前の値で埋める
df_filled_ffill = df.fillna(method='ffill')
# 次の値で埋める
df_filled_bfill = df.fillna(method='bfill')
8.2 型変換¶
データの型を変換することで、計算や分析の効率を上げることができます。
# データ型の確認
print(df.dtypes)
# 列 'A' を整数型に変換
df['A'] = df['A'].astype('Int64')
# 列 'B' を文字列型に変換
df['B'] = df['B'].astype(str)
8.3 データの並べ替え¶
データを特定の順序に並べ替えます。
8.3.1 単一の列で並べ替え¶
8.3.2 複数列で並べ替え¶
# 列 'A' を昇順、列 'B' を降順に並べ替え
df_sorted_multiple = df.sort_values(by=['A', 'B'], ascending=[True, False])
これらの操作を実践することで、データセットの準備と変換を効果的に行い、分析の基礎を固めることができます。プログラムを実行して手を動かし、実際の動作を確認してみてください。