Python × Pandas で使える便利な(?)テクニック10選
1. はじめに
PandasはPythonでデータ分析を行うときの基本ライブラリで、データの読み込み、整形、集計、可視化などを簡単に行えます。しかし、データの量が増えると単純な操作だけでは効率が悪くなることあります。
この記事では、知っておくと便利な10個のテクニックを紹介し、実務で役立つ具体例も交えて解説します。
2. データの欠損値処理
欠損値(NaN)は分析結果に大きく影響するため、必ず扱い方を決める必要があります。
# 欠損値を0で埋める
df['売上'] = df['売上'].fillna(0)
# 欠損値を含む行を削除
df.dropna(subset=['売上', '数量'], inplace=True)
詳細
-
fillna()は欠損値を指定の値で埋める -
dropna()は欠損値を含む行を削除 -
subsetで特定列のみを対象にできる - 実務例: 売上データの空白は0に置き換えたり、重要な列に欠損がある行を除外したりする
3. データの並べ替え
# '売上'の降順で並べ替え
df_sorted = df.sort_values(by='売上', ascending=False)
詳細
-
ascending=Falseで降順(大きい順) - 複数列での並べ替えも可能
df.sort_values(by=['性別','売上'], ascending=[True, False])
4. データの条件抽出
条件に合った行だけを抽出できます。
df_filtered = df[(df['売上'] >= 1000) & (df['数量'] >= 5)]
詳細
-
&はAND、|はOR - 複雑な条件も組み合わせ可能
df[(df['売上'] >= 1000) & ((df['数量'] >= 5) | (df['カテゴリー'] == 'A'))]
5. 複数列での集計
集計関数とグループ化を組み合わせると、カテゴリー別の集計が簡単にできます。
grouped = df.groupby(['性別', '年齢層'])['売上'].mean()
print(grouped)
詳細
-
groupby()でグループ化 - 集計関数:
sum(),mean(),count(),max(),min() - 実務例: 性別・年齢層ごとの平均売上を分析するマーケティング
6. データの結合(merge)
df_merged = pd.merge(customers, purchases, on='顧客ID', how='inner')
詳細
-
onで結合キーを指定 -
howの種類:-
'inner': 両方に存在するデータのみ -
'left': 左側のデータはすべて残す -
'right': 右側のデータはすべて残す -
'outer': 両方のデータをすべて残す
-
-
実務例: 顧客情報と購入履歴の結合
7. 列の操作(apply, map)
列単位で値を変換したいときに便利です。
# すべての値を2倍にする
df['数量2倍'] = df['数量'].apply(lambda x: x*2)
# 条件に応じて値を変換
df['カテゴリー'] = df['売上'].map(lambda x: '高' if x >= 1000 else '低')
詳細
-
apply()は関数を列の各要素に適用 -
map()は基本的に単一列の変換に便利 - 実務例: 売上を評価ランクに変換
8. 重複データの削除
重複したデータを取り除くことで、正確な集計が可能になります。
df.drop_duplicates(subset='顧客ID', keep='first', inplace=True)
詳細
-
subsetで対象列を指定 -
keep='first'で最初の行を残す、keep='last'で最後を残す、keep=Falseですべて削除
9. 日付データの操作
日付を扱うときは、文字列を日付型に変換するのが基本です。
df['購入日'] = pd.to_datetime(df['購入日'])
monthly_sales = df.groupby(df['購入日'].dt.month)['売上'].sum()
詳細
-
.dtアクセサで年・月・日などを抽出可能 - 実務例: 月別売上、曜日別の売上分析
df['曜日'] = df['購入日'].dt.day_name()
10. サンプルデータの抽出(sample)
データの一部だけをランダムに取り出して確認するのに便利です。
df_sample = df.sample(n=10, random_state=42)
詳細
-
nは抽出行数 -
fracで割合指定も可能
df.sample(frac=0.1, random_state=42) # データの10%を抽出
11. まとめ
- Pandasの便利なテクニックを覚えると作業効率が大幅に向上
- 欠損値処理、条件抽出、集計、結合、日付操作は実務で頻繁に使う
- データ分析のスピードと精度を上げるためには、これらのテクニックを組み合わせることが重要