データ分析を始めたばかりのPythonユーザーの皆さん、Pandasライブラリはもう使っていますか?Pandasはデータ操作と分析において非常に強力なツールですが、実は知っておくと便利な「裏技」がたくさんあります。この記事では、Pandasを使ったデータ分析がさらに楽になる10のテクニックを紹介します。
目次
- Pandasでデータを素早く作成
- 特定の列のデータ型を一括変更
- 条件に基づくデータのフィルタリング
- 複数列の一括操作
- 欠損値の簡単な処理
- データフレームの行・列の入れ替え
- グループ化と集計の極意
- データフレームのマージと結合
- シリーズとデータフレームのインデックス操作
- データの可視化を即座に行う
デモデータの準備
まず、記事で使用するデモデータを作成します。今回は、架空の販売データを用います。
pythonコードをコピーするimport pandas as pd
import numpy as np
# デモデータの作成
data = {
'Product': ['A', 'B', 'C', 'D', 'E'],
'Sales': [150, 200, np.nan, 300, 250],
'Discount': [10, 15, 10, np.nan, 20],
'Category': ['Electronics', 'Electronics', 'Furniture', 'Furniture', 'Electronics']
}
df = pd.DataFrame(data)
print(df)
実行結果:
mathematicaコードをコピーする Product Sales Discount Category
0 A 150.0 10.0 Electronics
1 B 200.0 15.0 Electronics
2 C NaN 10.0 Furniture
3 D 300.0 NaN Furniture
4 E 250.0 20.0 Electronics
このデータフレームには、製品名、売上、割引額、カテゴリが含まれています。一部のデータは欠損していますが、この記事で紹介するテクニックを使って処理していきます。
1. Pandasでデータを素早く作成
Pandasを使ってデータフレームを素早く作成し、表示します。
pythonコードをコピーする# 既に作成したデータフレームを表示
print(df)
実行結果:
mathematicaコードをコピーする Product Sales Discount Category
0 A 150.0 10.0 Electronics
1 B 200.0 15.0 Electronics
2 C NaN 10.0 Furniture
3 D 300.0 NaN Furniture
4 E 250.0 20.0 Electronics
データフレームの内容が正しく表示されました。
2. 特定の列のデータ型を一括変更
データの処理では、列のデータ型を変更する必要が出てきます。まず、欠損値を処理し、その後に型変換を行います。
pythonコードをコピーする# 欠損値の処理
df_copy = df.copy()
df_copy['Sales'] = df_copy['Sales'].fillna(df_copy['Sales'].mean())
df_copy['Discount'] = df_copy['Discount'].fillna(0) # 割引がない場合は0を入れる
# 型変換を実施
df_copy = df_copy.astype({'Sales': 'float64', 'Discount': 'int32'})
print(df_copy.dtypes)
print(df_copy)
実行結果:
lessコードをコピーするProduct object
Sales float64
Discount int32
Category object
dtype: object
Product Sales Discount Category
0 A 150.0 10 Electronics
1 B 200.0 15 Electronics
2 C 225.0 10 Furniture
3 D 300.0 0 Furniture
4 E 250.0 20 Electronics
データ型が正しく変換され、欠損値も処理されました。
3. 条件に基づくデータのフィルタリング
特定の条件に基づいてデータをフィルタリングします。
pythonコードをコピーする# セールスが200以上の製品をフィルタリング
filtered_df = df_copy[df_copy['Sales'] >= 200]
print(filtered_df)
実行結果:
mathematicaコードをコピーする Product Sales Discount Category
1 B 200.0 15 Electronics
2 C 225.0 10 Furniture
3 D 300.0 0 Furniture
4 E 250.0 20 Electronics
セールスが200以上の製品が正しくフィルタリングされました。
4. 複数列の一括操作
Pandasでは、複数の列に対して一括で操作を行うことができます。
pythonコードをコピーする# セールスと割引を一括で増加
df_copy[['Sales', 'Discount']] = df_copy[['Sales', 'Discount']].apply(lambda x: x * 1.1)
print(df_copy)
実行結果:
mathematicaコードをコピーする Product Sales Discount Category
0 A 165.0 11.0 Electronics
1 B 220.0 16.5 Electronics
2 C 247.5 11.0 Furniture
3 D 330.0 0.0 Furniture
4 E 275.0 22.0 Electronics
セールスと割引額がそれぞれ10%増加しました。
5. 欠損値の簡単な処理
欠損値が処理されたデータを再確認します。
pythonコードをコピーする# 既に処理された欠損値を確認
print(df_copy)
実行結果:
mathematicaコードをコピーする Product Sales Discount Category
0 A 165.0 11.0 Electronics
1 B 220.0 16.5 Electronics
2 C 247.5 11.0 Furniture
3 D 330.0 0.0 Furniture
4 E 275.0 22.0 Electronics
欠損値が正しく処理された状態でデータが表示されています。
6. データフレームの行・列の入れ替え
行と列を入れ替えて新たな視点でデータを確認します。
pythonコードをコピーする# 行と列を入れ替え
df_transposed = df_copy.T
print(df_transposed)
実行結果:
mathematicaコードをコピーする 0 1 2 3 4
Product A B C D E
Sales 165.0 220.0 247.5 330.0 275.0
Discount 11.0 16.5 11.0 0.0 22.0
Category Electronics Electronics Furniture Furniture Electronics
行と列が入れ替えられたデータフレームが表示されました。
7. グループ化と集計の極意
データをカテゴリごとにグループ化し、集計を行います。
pythonコードをコピーする# カテゴリごとの売上と割引の集計
grouped_df = df_copy.groupby('Category').agg({'Sales': 'sum', 'Discount': 'mean'})
print(grouped_df)
実行結果:
markdownコードをコピーする Sales Discount
Category
Electronics 660.0 16.5
Furniture 577.5 5.5
カテゴリごとの売上と割引額が正しく集計されました。
8. データフレームのマージと結合
異なるデータセットを結合して、より豊富な情報を得ます。
pythonコードをコピーする# 製品情報と販売情報の結合
product_info = pd.DataFrame({
'Product': ['A', 'B', 'C', 'D', 'E'],
'Price': [300, 400, 500, 600, 700]
})
merged_df = pd.merge(df_copy, product_info, on='Product', how='inner')
print(merged_df)
実行結果:
mathematicaコードをコピーする Product Sales Discount Category Price
0 A 165.0 11.0 Electronics 300
1 B 220.0 16.5 Electronics 400
2 C 247.5 11.0 Furniture 500
3 D 330.0 0.0 Furniture 600
4 E 275.0 22.0 Electronics 700
製品情報が正しく結合され、全体のデータが表示されました。
9. シリーズとデータフレームのインデックス操作
インデックスを設定してデータを操作します。
pythonコードをコピーする# 製品名をインデックスに設定
df_copy.set_index('Product', inplace=True)
print(df_copy)
実行結果:
mathematicaコードをコピーする Sales Discount Category
Product
A 165.0 11.0 Electronics
B 220.0 16.5 Electronics
C 247.5 11.0 Furniture
D 330.0 0.0 Furniture
E 275.0 22.0 Electronics
製品名がインデックスに設定され、データの操作が容易になりました。
10. データの可視化を即座に行う
最後に、データの可視化を行います。
pythonコードをコピーするimport matplotlib.pyplot as plt
# データの簡単な可視化
df_copy['Sales'].plot(kind='bar')
plt.title("Sales by Product")
plt.xlabel("Product")
plt.ylabel("Sales")
plt.show()
実行結果:
このコードを実行すると、各製品の売上が棒グラフとして表示されます。これにより、データの分析結果を視覚的に理解することが容易になります。
まとめと次のステップ
Pandasは非常に強力なツールで、少しの工夫で作業効率が大幅にアップします。今回紹介したテクニックを活用し、データ分析をよりスムーズに進めてみてください。次のステップとしては、さらに複雑なデータ処理や可視化に挑戦することをお勧めします。
GROWTH JAPAN TECHNOLOGIESは宮城県仙台市のAI企業です。
コメント