[Python] csvファイルをエクセル(xlsx)に変換する方法を解説

Pythonでは、CSVファイルをExcel形式のxlsxファイルに変換するために、主にライブラリを使用します。

まず、pandas.read_csv()関数を用いてCSVファイルを読み込み、DataFrameオブジェクトを作成します。

次に、DataFrame.to_excel()関数を使用して、読み込んだデータをxlsx形式で保存します。

この方法により、データの変換が簡単に行え、Excelでのデータ操作が可能になります。

また、openpyxlxlsxwriterといったライブラリを利用することで、より高度なExcelファイルの操作も可能です。

この記事でわかること
  • エクセルファイルへの基本的な書き出し手順
  • 複数のシートを持つエクセルファイルの作成方法
  • 大量のCSVファイルを一括でエクセルに変換する方法
  • エクセルファイルにグラフやフォーマットを適用する方法

目次から探す

必要なライブラリのインストール

PythonでCSVファイルをエクセル(xlsx)形式に変換するためには、主に2つのライブラリが必要です。

これらのライブラリをインストールする方法を説明します。

pandasのインストール

pandasはデータ操作や分析に非常に便利なライブラリです。

CSVファイルの読み込みやエクセルファイルへの書き出しに使用します。

以下のコマンドを実行してインストールします。

pip install pandas

openpyxlのインストール

openpyxlはエクセルファイル(xlsx形式)を操作するためのライブラリです。

pandasと組み合わせて使用することで、エクセルファイルの作成や編集が可能になります。

以下のコマンドを実行してインストールします。

pip install openpyxl

これで、CSVファイルをエクセル形式に変換するための準備が整いました。

次のステップでは、CSVファイルの読み込みについて説明します。

CSVファイルの読み込み

CSVファイルをエクセル形式に変換するためには、まずそのCSVファイルを読み込む必要があります。

ここでは、pandasライブラリを使用してCSVファイルを読み込む方法を説明します。

pandasを使ったCSVファイルの読み込み

pandasを使うことで、簡単にCSVファイルをデータフレームとして読み込むことができます。

以下の手順でCSVファイルを読み込みます。

read_csv関数の使い方

read_csv関数を使用してCSVファイルを読み込みます。

基本的な使い方は以下の通りです。

import pandas as pd
# CSVファイルの読み込み
data = pd.read_csv('ファイル名.csv')

ここで、'ファイル名.csv'は読み込みたいCSVファイルのパスを指定します。

読み込んだデータの確認方法

CSVファイルを読み込んだ後、データが正しく読み込まれたかを確認するために、headメソッドを使用します。

これにより、データフレームの最初の数行を表示できます。

# 読み込んだデータの確認
print(data.head())

このコードを実行すると、データフレームの最初の5行が表示され、内容を確認することができます。

これで、CSVファイルの読み込みが完了しました。

次のステップでは、エクセルファイルへの変換方法について説明します。

エクセルファイルへの変換

CSVファイルを読み込んだ後は、そのデータをエクセルファイル(xlsx形式)に変換することができます。

ここでは、pandasライブラリを使用してエクセルファイルに書き出す方法を説明します。

pandasを使ったエクセルファイルの書き出し

pandasを使うことで、データフレームを簡単にエクセルファイルに書き出すことができます。

以下の手順でエクセルファイルを作成します。

to_excel関数の使い方

to_excel関数を使用して、データフレームをエクセルファイルに書き出します。

基本的な使い方は以下の通りです。

import pandas as pd
# CSVファイルの読み込み
data = pd.read_csv('ファイル名.csv')
# エクセルファイルへの書き出し
data.to_excel('出力ファイル名.xlsx', index=False)

ここで、'出力ファイル名.xlsx'は作成するエクセルファイルの名前を指定します。

index=Falseは、データフレームのインデックスをエクセルファイルに書き出さないことを意味します。

シート名の指定方法

エクセルファイルに書き出す際に、シート名を指定することもできます。

sheet_name引数を使用して、シート名を設定します。

# エクセルファイルへの書き出し(シート名指定)
data.to_excel('出力ファイル名.xlsx', sheet_name='シート1', index=False)

この例では、シート名を'シート1'に指定しています。

インデックスの有無の指定

デフォルトでは、データフレームのインデックスもエクセルファイルに書き出されますが、index引数を使ってインデックスの有無を指定できます。

index=True(デフォルト)でインデックスを含め、index=Falseでインデックスを含めないように設定できます。

# インデックスを含めてエクセルファイルに書き出す
data.to_excel('出力ファイル名.xlsx', index=True)

これで、CSVファイルからエクセルファイルへの変換が完了しました。

次のステップでは、実際のコード例を紹介します。

実際のコード例

ここでは、CSVファイルをエクセルファイルに変換するための具体的なコード例をいくつか紹介します。

基本的な変換から、複数のシートを持つエクセルファイルの作成、特定の列のみをエクセルに書き出す方法までを説明します。

基本的な変換コード

まずは、CSVファイルをエクセルファイルに変換する基本的なコードです。

import pandas as pd
# CSVファイルの読み込み
data = pd.read_csv('input_file.csv')
# エクセルファイルへの書き出し
data.to_excel('output_file.xlsx', index=False)

このコードを実行すると、input_file.csvからデータを読み込み、output_file.xlsxという名前のエクセルファイルが作成されます。

複数のシートを持つエクセルファイルの作成

次に、複数のシートを持つエクセルファイルを作成する方法です。

異なるデータフレームをそれぞれのシートに書き出します。

import pandas as pd
# CSVファイルの読み込み
data1 = pd.read_csv('input_file1.csv')
data2 = pd.read_csv('input_file2.csv')
# エクセルファイルへの書き出し(複数シート)
with pd.ExcelWriter('output_file.xlsx') as writer:
    data1.to_excel(writer, sheet_name='シート1', index=False)
    data2.to_excel(writer, sheet_name='シート2', index=False)

このコードでは、input_file1.csvinput_file2.csvからデータを読み込み、それぞれシート1シート2に書き出します。

特定の列のみをエクセルに書き出す方法

特定の列だけをエクセルファイルに書き出すことも可能です。

以下のコードでは、特定の列を選択して書き出します。

import pandas as pd
# CSVファイルの読み込み
data = pd.read_csv('input_file.csv')
# 特定の列を選択
selected_columns = data[['列名1', '列名2']]
# エクセルファイルへの書き出し
selected_columns.to_excel('output_file.xlsx', index=False)

この例では、列名1列名2という特定の列のみを選択し、エクセルファイルに書き出しています。

これで、CSVファイルをエクセルファイルに変換するための実際のコード例を紹介しました。

次のステップでは、応用例について説明します。

応用例

ここでは、CSVファイルをエクセルファイルに変換する際の応用例をいくつか紹介します。

大量のCSVファイルを一括で変換する方法や、エクセルファイルにグラフやフォーマットを追加する方法について説明します。

大量のCSVファイルを一括でエクセルに変換する方法

複数のCSVファイルを一括でエクセルファイルに変換するには、osモジュールを使ってディレクトリ内のファイルをループ処理します。

以下のコードは、指定したフォルダ内の全てのCSVファイルをエクセルファイルに変換します。

import pandas as pd
import os
# CSVファイルが格納されているディレクトリ
input_directory = 'csv_files/'
output_file = 'output_file.xlsx'
# エクセルファイルへの書き出し
with pd.ExcelWriter(output_file) as writer:
    for filename in os.listdir(input_directory):
        if filename.endswith('.csv'):
            data = pd.read_csv(os.path.join(input_directory, filename))
            sheet_name = os.path.splitext(filename)[0]  # 拡張子を除いたファイル名をシート名に
            data.to_excel(writer, sheet_name=sheet_name, index=False)

このコードを実行すると、csv_filesフォルダ内の全てのCSVファイルが、各ファイル名をシート名として持つエクセルファイルに変換されます。

エクセルファイルにグラフを追加する方法

openpyxlライブラリを使用して、エクセルファイルにグラフを追加することができます。

以下のコードは、データをもとに簡単な棒グラフを作成します。

import pandas as pd
from openpyxl import Workbook
from openpyxl.chart import BarChart, Reference
# データの読み込み
data = pd.read_csv('input_file.csv')
# エクセルファイルの作成
wb = Workbook()
ws = wb.active
# データをエクセルに書き出し
for r in dataframe_to_rows(data, index=False, header=True):
    ws.append(r)
# グラフの作成
chart = BarChart()
data_ref = Reference(ws, min_col=2, min_row=1, max_col=3, max_row=len(data) + 1)  # データ範囲
chart.add_data(data_ref, titles_from_data=True)
ws.add_chart(chart, "E5")  # グラフの配置位置
# エクセルファイルの保存
wb.save('output_with_chart.xlsx')

このコードでは、input_file.csvからデータを読み込み、棒グラフを作成してoutput_with_chart.xlsxに保存します。

エクセルファイルにフォーマットを適用する方法

openpyxlを使って、エクセルファイルにフォーマットを適用することも可能です。

以下のコードは、特定の列にフォーマットを適用する例です。

import pandas as pd
from openpyxl import Workbook
from openpyxl.styles import Font
# データの読み込み
data = pd.read_csv('input_file.csv')
# エクセルファイルの作成
wb = Workbook()
ws = wb.active
# データをエクセルに書き出し
for r in dataframe_to_rows(data, index=False, header=True):
    ws.append(r)
# フォントのスタイルを適用
for cell in ws["A"]:  # A列の全てのセルに適用
    cell.font = Font(bold=True, color="FF0000")  # 太字かつ赤色
# エクセルファイルの保存
wb.save('output_with_format.xlsx')

このコードでは、input_file.csvからデータを読み込み、A列の全てのセルに太字かつ赤色のフォントスタイルを適用してoutput_with_format.xlsxに保存します。

これで、CSVファイルをエクセルファイルに変換する際の応用例を紹介しました。

次のステップでは、よくある質問について説明します。

よくある質問

CSVファイルの読み込み時にエラーが出る場合の対処法

CSVファイルの読み込み時にエラーが発生する場合、以下の点を確認してください。

  • ファイルパスの確認: 指定したファイル名やパスが正しいか確認します。
  • エンコーディングの指定: 特に日本語を含むCSVファイルの場合、encoding='utf-8'encoding='shift_jis'を指定することで解決することがあります。

例: pd.read_csv('ファイル名.csv', encoding='utf-8')

  • 区切り文字の確認: デフォルトではカンマ,が区切り文字として使用されますが、タブ区切りやセミコロン区切りの場合は、sep引数を指定します。

例: pd.read_csv('ファイル名.csv', sep='\t')

エクセルファイルの書き出し時にフォーマットが崩れる場合の対処法

エクセルファイルの書き出し時にフォーマットが崩れる場合、以下の点を確認してください。

  • データ型の確認: 数値や日付のデータ型が正しく設定されているか確認します。

必要に応じて、astypeメソッドを使用してデータ型を変換します。

  • セルの幅の調整: 書き出した後にセルの幅が狭くて内容が見えない場合、openpyxlを使ってセルの幅を調整することができます。
  • スタイルの適用: openpyxlを使用して、書き出した後にセルのスタイルを手動で適用することも可能です。

複数のCSVファイルを一つのエクセルファイルにまとめる方法

複数のCSVファイルを一つのエクセルファイルにまとめるには、pandasExcelWriterを使用します。

以下の手リ内の全てのCSVファイルが、各ファイル名をシート名として持つエクセルファイルにまとめられます。

まとめ

この記事では、Pythonを使用してCSVファイルをエクセル(xlsx)形式に変換する方法を詳しく解説しました。

具体的には、必要なライブラリのインストールから、CSVファイルの読み込み、エクセルファイルへの書き出し、さらには応用例やよくある質問までをカバーしました。

これを機に、Pythonを使ったデータ処理のスキルをさらに磨いてみてください。

  • URLをコピーしました!
目次から探す