Python でヘッダー行をスキップして CSV データを効率的に処理するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-13 11:45:02
オリジナル
124 人が閲覧しました

How Can I Process CSV Data Efficiently by Skipping Header Rows in Python?

ヘッダー行を無視して CSV データを効率的に処理する

CSV (カンマ区切り値) ファイルを扱う場合、ヘッダー行、または列を含む行を確実に処理することが重要です。名前を付けても、データ計算を妨げないでください。この問題に対処するには、Python の Sniffer 関数と next() 関数を利用できます。

1. CSV スニファーの使用:

csv.Sniffer クラスは、CSV ファイルの形式を検査する便利な方法を提供します。その has_header() メソッドは、ファイルの最初の部分を調べることによってヘッダー行が存在するかどうかを判断します。

2.ヘッダー行のスキップ:

スニッファーがヘッダーを検出した場合、組み込みの next() 関数を使用してヘッダー行をスキップできます。次の行に進む前に、file.seek(0) を使用してファイル ポインタを先頭にリセットする必要があります。

特定の列のコードの最適化:

列インデックスとデータ型は固定されているため、目的の列に直接アクセスしてデータを特定の型に変換する方が効率的です。この最適化により、処理時間が短縮されます。

Python 3.x のコード例:

import csv

with open('all16.csv', 'r', newline='') as file:
    has_header = csv.Sniffer().has_header(file.read(1024))
    file.seek(0)
    reader = csv.reader(file)
    if has_header:
        next(reader)
    data = (float(row[1]) for row in reader)
    least_value = min(data)

print(least_value)
ログイン後にコピー

Python 2.x の場合:

import csv

with open('all16.csv', 'rb') as file:
    has_header = csv.Sniffer().has_header(file.read(1024))
    file.seek(0)
    reader = csv.reader(file)
    if has_header:
        next(reader)
    data = (float(row[1]) for row in reader)
    least_value = min(data)

print(least_value)
ログイン後にコピー

これらの手法を実装すると、Python が CSV データを処理するときにヘッダー行を無視するようになり、正確かつ効率的な結果が得られます。

以上がPython でヘッダー行をスキップして CSV データを効率的に処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート