[Python] csvファイルをエクセル(xlsx)に変換する方法を解説
Pythonでは、CSVファイルをExcel形式のxlsxファイルに変換するために、主にライブラリを使用します。
まず、pandas.read_csv()
関数を用いてCSVファイルを読み込み、DataFrame
オブジェクトを作成します。
次に、DataFrame.to_excel()
関数を使用して、読み込んだデータをxlsx形式で保存します。
この方法により、データの変換が簡単に行え、Excelでのデータ操作が可能になります。
また、openpyxl
やxlsxwriter
といったライブラリを利用することで、より高度な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.csv
とinput_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ファイルをエクセルファイルに変換する際の応用例を紹介しました。
次のステップでは、よくある質問について説明します。
よくある質問
まとめ
この記事では、Pythonを使用してCSVファイルをエクセル(xlsx)形式に変換する方法を詳しく解説しました。
具体的には、必要なライブラリのインストールから、CSVファイルの読み込み、エクセルファイルへの書き出し、さらには応用例やよくある質問までをカバーしました。
これを機に、Pythonを使ったデータ処理のスキルをさらに磨いてみてください。