csvの値を1行ずつエクセルへ転記する方法 Dataframe_to_row / openpyxl / Python

Python備忘録。内容は初心者向けです。

csvファイルに入力されているデータをエクセルへ転記する方法



openpyxlのDataframe_to_row

エクセルファイルを読み書きできるPythonライブラリ「openpyxl」を使用します。
Dataframe_to_rowは、データを1行ずつ取得できるopenpyxlの関数です。

NOTE
  • openpyxlはエクセルを扱うことができるライブラリ
  • openpyxlの関数「Dataframe_to_row」でデータを1行ずつ取得
  • PandasやNumpyで使用可能

サンプルコード


import pandas as pd
from openpyxl import Workbook
from openpyxl.utils.dataframe import dataframe_to_rows

wb=Workbook()
ws=wb.active
df=pd.read_csv('fruits.csv',encoding='shift_jis')
for row in dataframe_to_rows(df,index=None,header=None):
    ws.append(row)

wb.save('果物の価格.xlsx')

コメント

  • Pythonファイルと同じフォルダに「fruits.csv」を保存しておく
  • df=pd〜 で「fruits.csv」の読み込み
  • for row in dataframe〜 でcsvファイルの中身を1行ずつ取得
  • ws.append(row)で取得した値をwsへ書き込み

出力


「fruits.csv」ファイルの中身


プログラムを実行するとエクセルファイルが作成されました。


「header=None」を「header=True」に書き換えるとこうなります。

注記

うまくいかないときは「encoding=’shift_jis’」を「encoding=’utf-8’」などへ変えると良いかもしれません。