Pythonで機械学習をする際に一番最初につまずくのがcsvファイルの読み書きではないでしょうか?
この記事ではpythonでcsvを操作する方法について解説していきます。
この記事はこんな方におすすめです
・Pythonを始めたばかりの方
・機械学習を始めたばかりの方
前提条件
・Google Colaboratory
・csv保存先:Google Drive
・Pandasを使って操作します
CSVを読み込む
1 2 3 4 5 |
# ライブラリの読込 import pandas as pd # hoge.csvを読み込み df = pd.read_csv('/content/drive/My Drive/csv/hoge.csv', encoding="SHIFT-JIS") |
Excelでcsvを作成した場合は、文字コードが "SHIFT-JIS"になっているのでここでは encodingに "SHIFT-JIS"を指定します。
CSVに書き込む
1 2 3 4 5 6 7 8 |
# ライブラリの読込 import pandas as pd # csv の出力先を定義する filepath = '/content/drive/My Drive/csv/' # csvに書き込む (1行目のヘッダありの場合 index=True) df.to_csv(filepath + 'hoge.csv', index=True) |
csvに書き込む際に1行目のヘッダーを付けたいのでここでは index=Trueを指定しています。
応用 SQLの結果をCSVに書き出す
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# ライブラリの読込 import csv # FilePathの設定 csvfilepath = "C:/Users/PycharmProjects/csv/" # hoge.csv.yyyymmdd output_file = csvfilepath + 'hoge.csv'.format(datetime.datetime.today().strftime('%Y-%m-%d')) # CSVへ書出 with open(output_file, 'w', newline='', encoding='shift_jis') as csvfile: # lineterminator 改行コードの指定 csv_writer = csv.writer(csvfile, lineterminator='\n') # 配列を作成する descs = [] # for文でcsvを1行ずつ読込み書込む for desc in cursor.description: descs.append(desc[0]) csv_writer.writerow(descs) csv_writer.writerows(ret) |
おわりに
いかがでしたでしょうか? 今回は「Pythonでcsv操作」をご紹介しました。 csvは本当に業務ではよく使うので、操作に慣れておくと開発が楽になります。 これからも技術を学んで、エンジニアとしての道を歩んでいきましょう!