[Python] CSVファイルを1行ずつ読み込む方法を解説

PythonでCSVファイルを1行ずつ読み込むには、標準ライブラリのcsvモジュールを使用します。

csv.reader関数を用いることで、CSVファイルを行ごとにリストとして取得できます。

ファイルを開く際にはopen関数を使い、withステートメントを利用することでファイルの自動クローズを確保します。

各行はリスト形式で返されるため、インデックスを使用して特定の列にアクセスすることが可能です。

この方法はメモリ効率が良く、大きなCSVファイルを扱う際に特に有用です。

この記事でわかること
  • CSVファイルをcsv.readerpandasで読み込む方法
  • 大きなCSVファイルをメモリ効率よく処理するテクニック
  • 条件に基づいて行をフィルタリングする方法
  • 読み込んだデータの加工方法
  • 加工後のデータを新しいCSVファイルに保存する方法

目次から探す

PythonでCSVファイルを扱うための準備

CSV(Comma-Separated Values)ファイルは、データを表形式で保存するための一般的なフォーマットです。

Pythonでは、CSVファイルを簡単に読み書きするためのライブラリが用意されています。

ここでは、CSVファイルを扱うための準備として、必要なライブラリのインストール方法を解説します。

必要なライブラリのインストール

PythonでCSVファイルを扱うためには、主に以下の2つのライブラリを使用します。

スクロールできます
ライブラリ名説明
csvPythonに標準で組み込まれているライブラリで、CSVファイルの読み書きが可能です。
pandasデータ分析に特化したライブラリで、CSVファイルの操作がより簡単に行えます。

csvモジュール

csvモジュールは、Pythonに標準で含まれているため、特別なインストールは不要です。

以下のようにインポートするだけで使用できます。

import csv

pandasライブラリ(オプション)

pandasライブラリは、データ分析や操作を行うための強力なツールです。

CSVファイルを扱う際にも非常に便利です。

pandasを使用するには、まずインストールが必要です。

以下のコマンドを実行してインストールします。

pip install pandas

インストール後、次のようにインポートして使用します。

import pandas as pd

これで、CSVファイルを扱うための準備が整いました。

次のステップでは、実際にCSVファイルを1行ずつ読み込む方法について解説します。

CSVファイルを1行ずつ読み込む方法

CSVファイルを1行ずつ読み込む方法には、主にcsvモジュールを使用する方法と、pandasライブラリを使用する方法があります。

それぞれの基本的な使い方と実際のコード例を見ていきましょう。

csv.readerを使った方法

基本的な使い方

csv.readerを使用すると、CSVファイルを行単位で読み込むことができます。

ファイルを開き、csv.readerを使ってデータを読み込む流れは以下の通りです。

  1. CSVファイルを開く。
  2. csv.readerを使ってファイルオブジェクトをラップする。
  3. ループを使って各行を処理する。

実際のコード例

以下は、csv.readerを使ってCSVファイルを1行ずつ読み込むサンプルコードです。

import csv
with open('data.csv', mode='r', encoding='utf-8') as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)

このコードを実行すると、data.csvの各行がリスト形式で出力されます。

['Header1', 'Header2', 'Header3']
['Value1', 'Value2', 'Value3']
['Value4', 'Value5', 'Value6']

pandasを使った方法

基本的な使い方

pandasを使用すると、CSVファイルを簡単に読み込むことができます。

pandasread_csv関数を使うことで、CSVファイル全体をDataFrameとして読み込むことができますが、1行ずつ処理することも可能です。

  1. pandasをインポートする。
  2. read_csv関数を使ってCSVファイルを読み込む。
  3. DataFrameをループして各行を処理する。

実際のコード例

以下は、pandasを使ってCSVファイルを1行ずつ読み込むサンプルコードです。

import pandas as pd
df = pd.read_csv('data.csv')
for index, row in df.iterrows():
    print(row)

このコードを実行すると、data.csvの各行がSeries形式で出力されます。

Header1    Value1
Header2    Value2
Header3    Value3
Name: 0, dtype: object
Header1    Value4
Header2    Value5
Header3    Value6
Name: 1, dtype: object

これで、csv.readerpandasを使ったCSVファイルの1行ずつ読み込む方法について理解できました。

次のセクションでは、これらの方法を応用した具体的な例を見ていきます。

応用例

CSVファイルを扱う際には、基本的な読み込み方法だけでなく、さまざまな応用技術を活用することが重要です。

ここでは、大きなCSVファイルの効率的な処理、条件に基づく行のフィルタリング、読み込んだデータの加工と保存について解説します。

大きなCSVファイルの効率的な処理

メモリ効率を考慮した方法

大きなCSVファイルを扱う場合、全てのデータを一度にメモリに読み込むと、メモリ不足になる可能性があります。

これを避けるために、csv.readerを使ってファイルを1行ずつ読み込む方法が有効です。

以下のように、ファイルを開いて1行ずつ処理することで、メモリの使用量を抑えることができます。

import csv
with open('large_data.csv', mode='r', encoding='utf-8') as file:
    reader = csv.reader(file)
    for row in reader:
        # 各行に対する処理をここに記述
        pass

この方法では、必要な行だけを逐次処理するため、メモリの負担を軽減できます。

条件に基づく行のフィルタリング

特定の条件で行を抽出する方法

CSVファイルから特定の条件に合致する行を抽出することもよくあります。

csv.readerを使用して、条件に基づいて行をフィルタリングする例を示します。

import csv
with open('data.csv', mode='r', encoding='utf-8') as file:
    reader = csv.reader(file)
    for row in reader:
        if row[1] == '特定の条件':  # 例: 2列目が特定の値の場合
            print(row)

このコードでは、2列目の値が「特定の条件」と一致する行だけを出力します。

読み込んだデータの加工と保存

データの加工方法

読み込んだデータを加工することも重要です。

例えば、数値データを計算したり、文字列を変換したりすることができます。

以下は、pandasを使ったデータの加工例です。

import pandas as pd
df = pd.read_csv('data.csv')
df['新しい列'] = df['既存の列'] * 2  # 既存の列の値を2倍にして新しい列を作成

このコードでは、既存の列の値を2倍にして新しい列を追加しています。

加工後のデータを新しいCSVファイルに保存する方法

加工したデータを新しいCSVファイルに保存するには、pandasto_csvメソッドを使用します。

df.to_csv('processed_data.csv', index=False)

このコードを実行すると、加工後のデータがprocessed_data.csvというファイルに保存されます。

index=Falseを指定することで、行番号をファイルに含めないようにしています。

これで、CSVファイルの効率的な処理、条件に基づく行のフィルタリング、データの加工と保存についての応用例を理解できました。

次のセクションでは、よくある質問にお答えします。

よくある質問

csv.readerとpandasの違いは何ですか?

csv.readerはPythonの標準ライブラリで、CSVファイルを行単位で読み込むシンプルな方法を提供します。

一方、pandasはデータ分析に特化したライブラリで、CSVファイルをDataFrameとして読み込むことができ、データの操作や分析が容易になります。

pandasは大規模なデータセットを扱う際に特に便利ですが、csv.readerは軽量で簡単な用途に適しています。

大きなCSVファイルを読み込む際の注意点は?

大きなCSVファイルを読み込む際は、メモリの使用量に注意が必要です。

全てのデータを一度にメモリに読み込むと、メモリ不足になる可能性があります。

csv.readerを使用して1行ずつ処理するか、pandaschunksizeオプションを利用してデータを分割して読み込む方法が推奨されます。

また、必要な列だけを選択して読み込むことで、メモリの使用量をさらに抑えることができます。

読み込んだデータを他の形式に変換する方法は?

読み込んだデータを他の形式に変換するには、pandasを使用するのが便利です。

例えば、DataFrameをExcelファイルに変換するには、to_excelメソッドを使用します。

また、JSON形式に変換するには、to_jsonメソッドを使用します。

df.to_excel('data.xlsx', index=False)のようにすると、DataFrameをExcelファイルに保存する例です。

まとめ

この記事では、Pythonを使用してCSVファイルを1行ずつ読み込む方法や、応用技術について解説しました。

特に、大きなCSVファイルの効率的な処理やデータの加工方法について詳しく説明しました。

これを機に、CSVファイルの扱い方をマスターし、データ分析のスキルを向上させてみてください。

  • URLをコピーしました!
目次から探す