1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

猿でもわかるAIプログラミングシリーズ 🐵💻 初めてのPandas:表データを扱ってみよう

Posted at

「初めてのPandas:表データを扱ってみよう」〜現場で役立つデータ処理の基本〜


1. はじめに:CSVを触れなければAIは語れない

機械学習やデータ分析を行う上で、避けては通れないのが「表形式データ(Tabular Data)」の扱いです。特にCSVやExcelなど、実務では多くの業務データが**“表”として保存**されています。

そんな時に強力な武器になるのが、Pythonのデータ操作ライブラリ Pandas です。

本記事では、データ分析未経験者でもすぐに使えるように、Pandasの基本機能と実務での使い方を、手を動かしながら学べる形式で解説します。


2. Pandasとは?何ができるの?

Pandasは、Pythonでデータの読み込み・加工・分析を行うためのライブラリです。

主な特徴

機能 説明
DataFrame 行と列を持つ“表形式”のデータ構造
CSV, Excelの読み書き データの入出力が簡単
集計・フィルタ SQLのような操作も可能
欠損値処理 欠けたデータへの対応が柔軟

このように、Pandasは AI開発の前処理フェーズやEDA(探索的データ分析)で必須のツールです。


3. 実践!Pandasの基本操作

ここからは、実際にコードを書きながらPandasを体験してみましょう。

3.1 ライブラリのインポートとデータ読み込み

import pandas as pd

# CSVファイルを読み込む(今回はURLから)
url = 'https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv'
df = pd.read_csv(url)

# 最初の5行を表示
print(df.head())

3.2 データの基本情報を確認

# 行数・列数の確認
print(df.shape)

# 各列の型や欠損情報
print(df.info())

# 統計量の表示(平均、中央値、標準偏差など)
print(df.describe())

3.3 欲しい列だけ取り出す

# 特定の列
print(df['Age'])

# 複数列
print(df[['Age', 'Fare']])

3.4 条件に合う行をフィルタする

# 20歳未満の乗客
print(df[df['Age'] < 20])

# 女性で1等船室
print(df[(df['Sex'] == 'female') & (df['Pclass'] == 1)])

3.5 集計やグループ化

# クラスごとの平均年齢
print(df.groupby('Pclass')['Age'].mean())

# 性別ごとの生存率
print(df.groupby('Sex')['Survived'].mean())

3.6 欠損値の確認と補完

# 欠損値の数
print(df.isnull().sum())

# Age列の欠損を中央値で埋める
df['Age'] = df['Age'].fillna(df['Age'].median())

4. 現場で役立つTipsと落とし穴

✅ 実務でよく使うテク

操作 コマンド例
並び替え df.sort_values('Fare', ascending=False)
欠損除去 df.dropna()
新しい列追加 df['Age_bin'] = df['Age'] // 10
重複削除 df.drop_duplicates()

❌ よくあるミス

  • df['列名']df.列名を混同してエラー
  • inplace=Trueの挙動で元データが上書きされる
  • .loc.ilocの使い分けがあいまい
  • 欠損値を放置してモデル学習が失敗

5. 応用編:Pandas + 可視化でEDAに挑戦

Pandasはmatplotlibやseabornと組み合わせて視覚的な分析にも使えます。

import seaborn as sns
import matplotlib.pyplot as plt

# 年齢と料金の関係
sns.scatterplot(x='Age', y='Fare', data=df)
plt.title('年齢と運賃の関係')
plt.show()

# 性別ごとの生存率
sns.barplot(x='Sex', y='Survived', data=df)
plt.title('性別ごとの生存率')
plt.show()

これだけでも、かなり実用的なダッシュボードに近いものができます。


6. まとめ:PandasはAIの“下地”を支える必須ツール

項目 内容
👍 強み 扱いやすく、学習コストが低い。AI前処理との親和性が高い
⚠️ 弱み 巨大データには不向き(→PolarsやDaskが必要)
🚀 展望 Notebook環境・クラウドでもそのまま活用できる

現場では、モデル構築よりも“データ整備”の時間の方が長いことも珍しくありません。
だからこそ、Pandasをマスターすることは、AI・データエンジニアとしての第一歩です。


📎 関連リンク


📌 次回は「AIにおける「教師あり」と「教師なし」の違いって何?」をお届け予定!
フォローしてチェックしてみてください!

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?