PythonでCSVデータをPandasで処理する方法!初心者向けにデータの読み書きを解説
生徒
「先生、CSVファイルって何ですか?聞いたことはあるけど、よくわからなくて…」
先生
「CSVファイルは、データをカンマで区切って保存したテキストファイルのことです。例えば、名前と年齢を一覧で保存するときに便利です。」
生徒
「なるほど。PythonでそのCSVデータを読み込んで処理するにはどうすればいいですか?」
先生
「PythonにはPandasというデータ分析用の便利なライブラリがあります。これを使うと、CSVファイルの読み書きやデータの操作が簡単にできます。」
1. Pandasとは?
Pandasは、Pythonでデータを表形式(表計算ソフトのような形)で扱えるライブラリです。大きな特徴は、データの読み込み、集計、加工、可視化まで幅広くサポートしていることです。
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ファイルの書き出し方法
読み込んだデータを加工した後、新しいCSVファイルとして保存することも簡単です。
# 年齢を2歳プラスして保存 df["年齢"] = df["年齢"] + 2
新しいCSVファイルに保存
df.to_csv("sample_modified.csv", index=False)
ポイントはindex=Falseです。これを指定しないと、行番号も一緒にCSVに書き出されてしまいます。
4. データの基本操作
Pandasでは、列を指定して操作したり、条件で絞り込むこともできます。
# 年齢が28歳以上のデータだけを抽出 df_filtered = df[df["年齢"] >= 28]
print(df_filtered)
名前 年齢 職業
佐藤花子 32 デザイナー
鈴木次郎 30 マーケティング
5. 列の追加や削除
新しい列を追加したり、不要な列を削除することも簡単です。
# 新しい列「年齢グループ」を追加 df["年齢グループ"] = ["若手" if age < 30 else "中堅" for age in df["年齢"]]
「職業」列を削除
df.drop("職業", axis=1, inplace=True)
print(df)
名前 年齢 年齢グループ
山田太郎 27 若手
佐藤花子 32 中堅
鈴木次郎 30 中堅
6. データの並び替え
データを特定の列で並び替えることも簡単です。例えば年齢の昇順や降順で並び替えることができます。
# 年齢の降順で並び替え df_sorted = df.sort_values("年齢", ascending=False)
print(df_sorted)
名前 年齢 年齢グループ
佐藤花子 32 中堅
鈴木次郎 30 中堅
山田太郎 27 若手
7. データの集計
Pandasでは簡単に平均値や合計などの集計も可能です。
# 年齢の平均を計算 average_age = df["年齢"].mean()
print("平均年齢:", average_age)
平均年齢: 29.666666666666668
8. 条件でデータを抽出
特定の条件に合うデータだけを抽出することも簡単です。
# 「若手」だけを抽出 df_young = df[df["年齢グループ"] == "若手"]
print(df_young)
名前 年齢 年齢グループ
山田太郎 27 若手
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データ操作がしっかり身につきます。実際にコードを書いて確認することが、理解を深める最も効果的な方法です。」