今回は、PythonでCSVテキストで指定されたデータを取得するメソッドと、PythonでCSVテキストで指定されたデータを取得するための注意事項を紹介します。実際のケースを見てみましょう。
csvは、Comma-Separated Valuesの略で、テキストファイル形式で保存されたのようなファイルです。内容は:
No.,Name,Age,Score
1,Apple,12,98
2,Ben,13,97
3,Celia,14,96
4,Dave,15,95
上記のcsvファイルが「A.csv」として保存されているとして、付属のcsvモジュールを使用して、Pythonを使ってExcelを操作するのと同じように列の1つ、つまりフィールドを抽出する方法を説明します。 Python では、これを実現するには 2 つの方法があります:
最初の方法
は、リーダー関数を使用して反復可能なオブジェクト (csv ファイルなど) を受け取り、ジェネレーターを返します。 CSV のコンテンツを解析できます。 たとえば、次のコードは CSV を読み取ることができます。 行 単位で、CSV のコンテンツ全体を読み取ることができます。 import csv
with open('A.csv','rb') as csvfile:
reader = csv.reader(csvfile)
rows= [row for row in reader]
print rows
を取得します。
[['No.', 'Name', 'Age', 'Score'], ['1', 'Apple', '12', '98'], ['2', 'Ben', '13', '97'], ['3', 'Celia', '14', '96'], ['4', 'Dave', '15', '95']]
列の 1 つを抽出するには、次を使用できます。コード: import csv
with open('A.csv','rb') as csvfile:
reader = csv.reader(csvfile)
column = [row[2] for row in reader]
print column
['Age', '12', '13', '14', '15']
CSV から読み込まれるのは str 型であることに注意してください。この方法では、列番号を事前に知っている必要があります。たとえば、年齢は列 2 にあり、タイトルの「年齢」に基づいてクエリを実行することはできません。 この時点で 2 番目のメソッドを使用できます。
2 番目のメソッド は、リーダー関数に似た DictReader を使用します。これは、反復可能なオブジェクトを受け取り、ジェネレーターを返すことができますが、それぞれが返されます。セルは辞書の値内に配置され、この辞書のキーはセルのタイトル (つまり、列ヘッダー) です。次のコードで DictReader の構造を確認できます:
import csv with open('A.csv','rb') as csvfile: reader = csv.DictReader(csvfile) column = [row for row in reader] print column
Get: [{'Age': '12', 'No.': '1', 'Score': '98', 'Name': 'Apple'},
{'Age': '13', 'No.': '2', 'Score': '97', 'Name': 'Ben'},
{'Age': '14', 'No.': '3', 'Score': '96', 'Name': 'Celia'},
{'Age': '15', 'No.': '4', 'Score': '95', 'Name': 'Dave'}]
DictReader を使用して CSV の特定の列を読み取りたい場合は、列タイトル クエリ:
import csv with open('A.csv','rb') as csvfile: reader = csv.DictReader(csvfile) column = [row['Age'] for row in reader] print column
を使用して get を実行できます。 :
['12', '13', '14', '15']
この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。
推奨書籍:
Python バッチで txt ファイルを DataFrame 形式に読み取る方法 Python がデータを更新するために mysql を呼び出す方法
以上がPythonはCSVテキストの指定されたデータメソッドを取得しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。