PythonでCSVの読み書き

  • 226
    Like
  • 0
    Comment

PythonによるCSVファイルの読み書きメモ.
3. pandasによる方法 がおすすめです.

  • Change log
2014/07/28  読み込み(Pandas)の追加.
2014/11/28  pandasを使う場合をまとめ.

1. 読み込み

Python documentation を参考にwith文を使う.

import csv

with open('some.csv', 'r') as f:
    reader = csv.reader(f)
    header = next(reader)  # ヘッダーを読み飛ばしたい時

    for row in reader:
        print row          # 1行づつ取得できる

with文を使わなくても,以下のように読み込める.

import csv

f = open('some.csv', 'r')

reader = csv.reader(f)
header = next(reader)
for row in reader:
    print row

f.close()

この場合はclose文をつける.

2. 書き込み

書き込みでもwith文を使う.

import csv

with open('some.csv', 'w') as f:
    writer = csv.writer(f, lineterminator='\n') # 改行コード(\n)を指定しておく
    writer.writerow(list)     # list(1次元配列)の場合
    writer.writerows(array2d) # 2次元配列も書き込める

読み込みと同様にwithなしでもOK.

import csv

f = open('some.csv', 'w')

writer = csv.writer(f, lineterminator='\n')
writer.writerow(list)
writer.writerows(array2d)

f.close()

3. pandasを使う方法(おすすめ)

pandasで読み込むとすっきりするし,便利な場合も多い.

import pandas as pd

df = pd.read_csv('some.csv')

print df       # show all column
print df['A']  # show 'A' column

読み込んだDataFrameは書き込みも簡単.

df.to_csv('some2.csv')

使い方は pandasでよく使う文法まとめ@okadate - Qiita などを参考に.