カテゴリ: Python 更新日: 2026/07/11

PythonでCSVデータをPandasで処理する方法!初心者向けにデータの読み書きを解説

PythonでCSVデータをPandasで処理する方法!データの読み書き
PythonでCSVデータをPandasで処理する方法!データの読み書き

先生と生徒の会話形式で理解しよう

生徒

「先生、CSVファイルって何ですか?聞いたことはあるけど、よくわからなくて…」

先生

「CSVファイルは、データをカンマで区切って保存したテキストファイルのことです。例えば、名前と年齢を一覧で保存するときに便利です。」

生徒

「なるほど。PythonでそのCSVデータを読み込んで処理するにはどうすればいいですか?」

先生

「PythonにはPandasというデータ分析用の便利なライブラリがあります。これを使うと、CSVファイルの読み書きやデータの操作が簡単にできます。」

1. Pandasとは?

1. Pandasとは?
1. Pandasとは?

Pandasは、Pythonでデータを表形式(表計算ソフトのような形)で扱えるライブラリです。大きな特徴は、データの読み込み、集計、加工、可視化まで幅広くサポートしていることです。

2. CSVファイルの読み込み方法

2. CSVファイルの読み込み方法
2. CSVファイルの読み込み方法

まずはCSVファイルをPandasで読み込みましょう。読み込むと、Python上で表形式のデータとして扱えるようになります。

 import pandas as pd # sample.csvを読み込む df = pd.read_csv("sample.csv") # データの先頭5行を確認 print(df.head())

名前,年齢,職業
山田太郎,25,エンジニア
佐藤花子,30,デザイナー
鈴木次郎,28,マーケティング

3. CSVファイルの書き出し方法

3. CSVファイルの書き出し方法
3. CSVファイルの書き出し方法

読み込んだデータを加工した後、新しいCSVファイルとして保存することも簡単です。

 # 年齢を2歳プラスして保存 df["年齢"] = df["年齢"] + 2
新しいCSVファイルに保存
df.to_csv("sample_modified.csv", index=False)

ポイントはindex=Falseです。これを指定しないと、行番号も一緒にCSVに書き出されてしまいます。

4. データの基本操作

4. データの基本操作
4. データの基本操作

Pandasでは、列を指定して操作したり、条件で絞り込むこともできます。

 # 年齢が28歳以上のデータだけを抽出 df_filtered = df[df["年齢"] >= 28]
print(df_filtered)

名前 年齢 職業
佐藤花子 32 デザイナー
鈴木次郎 30 マーケティング

5. 列の追加や削除

5. 列の追加や削除
5. 列の追加や削除

新しい列を追加したり、不要な列を削除することも簡単です。

 # 新しい列「年齢グループ」を追加 df["年齢グループ"] = ["若手" if age < 30 else "中堅" for age in df["年齢"]]
「職業」列を削除
df.drop("職業", axis=1, inplace=True)

print(df)

名前 年齢 年齢グループ
山田太郎 27 若手
佐藤花子 32 中堅
鈴木次郎 30 中堅

6. データの並び替え

6. データの並び替え
6. データの並び替え

データを特定の列で並び替えることも簡単です。例えば年齢の昇順や降順で並び替えることができます。

 # 年齢の降順で並び替え df_sorted = df.sort_values("年齢", ascending=False)
print(df_sorted)

名前 年齢 年齢グループ
佐藤花子 32 中堅
鈴木次郎 30 中堅
山田太郎 27 若手

7. データの集計

7. データの集計
7. データの集計

Pandasでは簡単に平均値や合計などの集計も可能です。

 # 年齢の平均を計算 average_age = df["年齢"].mean()
print("平均年齢:", average_age)

平均年齢: 29.666666666666668

8. 条件でデータを抽出

8. 条件でデータを抽出
8. 条件でデータを抽出

特定の条件に合うデータだけを抽出することも簡単です。

 # 「若手」だけを抽出 df_young = df[df["年齢グループ"] == "若手"]
print(df_young)

名前 年齢 年齢グループ
山田太郎 27 若手

9. CSVファイルのエンコーディング指定

9. CSVファイルのエンコーディング指定
9. CSVファイルのエンコーディング指定

日本語のCSVファイルを読み込むとき、文字化けを防ぐためにエンコーディングを指定することがあります。

 # UTF-8でCSVを読み込む df_utf8 = pd.read_csv("sample_utf8.csv", encoding="utf-8")
Shift_JISでCSVを読み込む場合
df_sjis = pd.read_csv("sample_sjis.csv", encoding="shift_jis")

まとめ

まとめ
まとめ

この記事では、PythonでCSVデータをPandasを使って効率よく処理する方法について詳しく解説しました。Pandasを使うことで、CSVファイルの読み込み、書き出し、データの抽出、列の追加・削除、並び替え、集計など、多くのデータ操作を簡単に行うことができます。特に、データ分析や機械学習に取り組む際には、Pandasの基本操作を理解しておくことが非常に重要です。初心者でも、この記事で紹介したサンプルコードを実際に試すことで、CSVデータの扱い方やPandasの便利な機能を体感できます。

CSVデータ処理のポイント

  • CSVファイルはカンマ区切りのテキストデータで、Pythonで簡単に読み書き可能。
  • Pandasのread_csv()でデータを読み込み、to_csv()で書き出すことができる。
  • 列の操作や条件抽出でデータの加工が柔軟に可能。
  • 文字化けを防ぐために、読み込み時にエンコーディングを指定することが重要。
  • データの並び替えや集計を活用することで、分析やレポート作成が効率化できる。

サンプルプログラムの復習

 import pandas as pd

# CSVの読み込み
df = pd.read_csv("sample.csv")
print(df.head())

# データの加工
df["年齢"] = df["年齢"] + 2
df["年齢グループ"] = ["若手" if age < 30 else "中堅" for age in df["年齢"]]

# 不要な列を削除
df.drop("職業", axis=1, inplace=True)

# 年齢で並び替え
df_sorted = df.sort_values("年齢", ascending=False)
print(df_sorted)

# 条件抽出
df_young = df[df["年齢グループ"] == "若手"]
print(df_young)

# CSVファイルとして保存
df.to_csv("sample_modified.csv", index=False)
先生と生徒の振り返り会話

生徒

「先生、今日はCSVファイルをPythonで操作する方法を学びましたが、どの操作が一番重要ですか?」

先生

「どれも重要ですが、まずはread_csv()to_csv()でデータを読み書きできることが基本です。その上で列の操作や抽出条件、並び替えなどを学ぶと、データ分析の幅が広がります。」

生徒

「なるほど。列の追加や削除も自由にできるんですね。リスト内包表記を使って年齢グループを作るのも便利でした。」

先生

「そうです。Pandasでは条件に応じたデータ加工がとても簡単です。また、文字化け対策のエンコーディング指定も忘れないようにしましょう。」

生徒

「最後に、学んだことをまとめると、CSVの読み書き、列操作、データ抽出、並び替え、集計、文字コードの扱いの順に理解すれば良いんですね!」

先生

「その通りです。この順序で練習すれば、PythonでのCSVデータ操作がしっかり身につきます。実際にコードを書いて確認することが、理解を深める最も効果的な方法です。」

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
Python のデータ分析と科学計算の記事一覧へ
新着記事
New1
Python
Pythonの変数とは?定義方法とデータ型を初心者向けに解説
New2
PHP
PHP の型変換を完全ガイド!初心者でもわかる明示的変換・自動変換
New3
PHP
PHPのCSVファイルの読み書きと文字列処理を基礎から解説!初心者向けガイド
New4
PHP
PHPのメモリ管理と変数の破棄方法をやさしく解説!初心者でもわかるunsetの使い方
人気記事
No.1
Java&Spring記事人気No1
Python
PythonでAPIリクエストを送信する方法を完全解説!requestsライブラリで簡単API通信
No.2
Java&Spring記事人気No2
Python
Pythonで経過時間を計測する方法を完全解説!初心者でもわかる time.perf_counter() と time.sleep()
No.3
Java&Spring記事人気No3
Python
Pythonのコンストラクタ(__init__)の使い方!初心者でもわかるオブジェクトの初期化
No.4
Java&Spring記事人気No4
PHP
PHPの配列をソートする方法!sort, rsort, asort, ksortの使い方を丁寧に解説します!
No.5
Java&Spring記事人気No5
PHP
PHP のフォームデータの受け取り($_POST, $_GET)を完全解説!初心者向けガイド
No.6
Java&Spring記事人気No6
Python
Pythonのタプルの要素を変更できない理由とその回避策を初心者向けに解説
No.7
Java&Spring記事人気No7
ChatGPT
ChatGPTでPythonコードを作成する方法!プロンプトの書き方と質問例を解説
No.8
Java&Spring記事人気No8
Python
Pythonのrequestsライブラリ完全入門!HTTPリクエストの送り方を初心者向けにやさしく解説