PythonでCSVファイルを操作する際、特定の行だけを読み込む方法が知りたいと思ったことはありませんか?この記事では、PythonでCSVファイルを操作するための準備から、行を指定してCSVファイルを読み込む方法、さらに実践例まで詳しく解説していきます。
PythonでCSVファイルを操作するための準備
PythonでCSVファイルを操作するためには、まず必要なライブラリをインポートし、CSVファイルを読み込む必要があります。
import csv
これで、csvライブラリを使ってCSVファイルを操作する準備が整いました。
CSVファイルの読み込み
次に、CSVファイルを読み込む方法を説明します。
import csv
# CSVファイルを開く
with open('sample.csv', 'r', encoding='utf-8') as csvfile:
# CSVファイルを読み込む
csv_reader = csv.reader(csvfile)
# CSVファイルの内容を表示
for row in csv_reader:
print(row)
行を指定してCSVファイルを読み込む方法
この章では、CSVファイルから特定の行を読み込む方法をいくつか紹介します。
指定行のみを読み込む方法
readlines()を使った方法
readlines()関数は、ファイルの全ての行をリストとして返します。このリストから指定した行を取り出すことができます。
with open("sample.csv", "r", encoding="utf-8") as f:
lines = f.readlines()
target_line = lines[2] # 3行目を取得
print(target_line)
enumerate()を使った方法
enumerate()関数を使うと、ファイルの行番号と行の内容を同時に取得できます。これを利用して、指定した行番号の行を読み込むことができます。
with open("sample.csv", "r", encoding="utf-8") as f:
for i, line in enumerate(f):
if i == 2: # 3行目を取得
print(line)
break
複数の行を指定して読み込む方法
スライスを使った方法
readlines()関数で取得したリストに対して、スライスを使って複数の行を指定して読み込むことができます。
with open("sample.csv", "r", encoding="utf-8") as f:
lines = f.readlines()
target_lines = lines[1:4] # 2行目から4行目までを取得
for line in target_lines:
print(line)
リスト内包表記を使った方法
リスト内包表記を使って、指定した行番号の行を読み込むことができます。
with open("sample.csv", "r", encoding="utf-8") as f:
lines = f.readlines()
target_line_numbers = [1, 3, 5] # 2行目、4行目、6行目を取得
target_lines = [lines[i] for i in target_line_numbers]
for line in target_lines:
print(line)
条件に合致する行を読み込む方法
if文を使った方法
条件に合致する行を読み込むには、if文を使って条件を指定します。
with open("sample.csv", "r", encoding="utf-8") as f:
for line in f:
if "条件に合致する文字列" in line:
print(line)
filter()関数を使った方法
filter()関数を使って、条件に合致する行を読み込むことができます。
def is_target_line(line):
return "条件に合致する文字列" in line
with open("sample.csv", "r", encoding="utf-8") as f:
lines = f.readlines()
target_lines = filter(is_target_line, lines)
for line in target_lines:
print(line)
これらの方法を組み合わせることで、様々な条件で行を指定してCSVファイルを読み込むことができます。
実践例
これまでに学んだ方法を使って、実際にCSVファイルから特定の行を抽出し、新しいCSVファイルに書き込む方法や、条件に合致するデータを集計する方法を解説します。.