Pythonでデータ分析を始める!Pandasの基本的な使い方
目次
- はじめに
- Pandasとは?
- データの読み込み
- データの確認
- データの操作(抽出・フィルタリング)
- データの集計
- データの可視化(Matplotlibとの連携)
- 応用例:複数条件での抽出や欠損値処理
- まとめ
1. はじめに
Pythonでデータ分析をする際、Pandasは最もよく使われるライブラリの一つです。
Excelのように表形式データを扱え、集計や加工、簡単な可視化も可能です。
結構(ほとんどの場合)つかうので初心者の人はぜひ知っておきたい。
Pandasを使うメリット:
- データの読み書きが簡単(CSV、Excel、JSONなど)
- データの抽出・加工が直感的
- グループ化や集計が簡単
- MatplotlibやSeabornと組み合わせて可視化も可能
2. Pandasとは?
Pandasは2つの基本データ構造を使います。
| データ構造 | 説明 |
|---|---|
| Series | 一次元データ。リストや配列のようなもの。 |
| DataFrame | 二次元データ。表形式(行と列)で管理できる。 |
import pandas as pd
# Seriesの例
s = pd.Series([10, 20, 30])
print(s)
# DataFrameの例
data = {'名前': ['Alice', 'Bob', 'Charlie'], '年齢': [25, 30, 22]}
df = pd.DataFrame(data)
print(df)
3. データの読み込み
Pandasでは様々な形式のデータを簡単に読み込めます。
ほんとに便利
# CSVファイルを読み込む
df = pd.read_csv('sample.csv')
# Excelファイルを読み込む
# df = pd.read_excel('sample.xlsx')
# JSONファイルを読み込む
# df = pd.read_json('sample.json')
print(df.head()) # 最初の5行を表示
head() 以外にも tail()(最後の5行)や、sample(n=3)(ランダムに3行)なども便利です。
4. データの確認
データの大きさや型を確認する方法デス。
print(df.shape) # 行数・列数
print(df.columns) # カラム名
print(df.info()) # データ型や欠損値の確認
print(df.describe()) # 数値データの統計情報
ポイント:
-
shape→ データの規模を把握 -
info()→ 型や欠損値をチェック -
describe()→ 平均・標準偏差・最大値・最小値など基本統計を確認
5. データの操作(抽出・フィルタリング)
特定の列を取得
print(df['名前']) # '名前'列だけ
複数列を取得する場合:
print(df[['名前', '年齢']])
条件でフィルタリング
# 年齢が20以上のデータ
df_filtered = df[df['年齢'] >= 20]
print(df_filtered)
# 複数条件
df_filtered = df[(df['年齢'] >= 20) & (df['性別'] == '女性')]
新しい列を作成
df['年齢+10'] = df['年齢'] + 10
df['名前_年齢'] = df['名前'] + '_' + df['年齢'].astype(str)
print(df)
6. データの集計
平均や合計
print(df['年齢'].mean()) # 平均
print(df['年齢'].sum()) # 合計
print(df['年齢'].max()) # 最大値
print(df['年齢'].min()) # 最小値
グループ化
# 性別ごとの平均年齢
grouped = df.groupby('性別')['年齢'].mean()
print(grouped)
# 複数集計も可能
grouped = df.groupby('性別')['年齢'].agg(['mean', 'max', 'min'])
print(grouped)
7. データの可視化(Matplotlibとの連携)
PandasはMatplotlibと組み合わせると簡単に可視化できます。
import matplotlib.pyplot as plt
# 年齢のヒストグラム
df['年齢'].hist()
plt.title('年齢の分布')
plt.xlabel('年齢')
plt.ylabel('人数')
plt.show()
# 性別ごとの人数を棒グラフ
df['性別'].value_counts().plot(kind='bar')
plt.title('性別の人数')
plt.show()
ポイント:
-
plot(kind='bar')→ 棒グラフ -
plot(kind='line')→ 折れ線グラフ -
plot(kind='pie')→ 円グラフ
8. 応用例:複数条件での抽出や欠損値処理
欠損値の確認
print(df.isnull().sum()) # 各列の欠損値数
欠損値の処理
# 欠損値を0で置き換え
df['年齢'] = df['年齢'].fillna(0)
# 欠損値の行を削除
df = df.dropna()
複数条件での抽出例
# 年齢が20以上かつ性別が女性
df_filtered = df[(df['年齢'] >= 20) & (df['性別'] == '女性')]
9. まとめ
- PandasはPythonでデータ分析をするためのすごく強力なライブラリ
- CSV・Excel・JSONから簡単にデータを読み込める
- データの抽出・加工・集計・可視化が簡単
- 欠損値処理や複数条件での抽出など実務でも便利
- 初めてのデータ分析はPandasの基本操作をマスターすることから!