【Python】pandasでエクセルファイルをシート名指定して読み込む、書き込む方法

はじめに

Pythonのpandasライブラリは、Excelファイルを簡単に扱うことができます。Excelファイルは、複数のシートに分かれていることがありますが、pandasを使えばシート名を指定して読み込むことができます。また、pandasを使ってデータを編集した後、Excelファイルに書き込むこともできます。

pandasでExcelファイルを扱う際の基本的な操作

Excelファイルをpandasで扱う場合、pandas.read_excel()を使います。Excelファイルのパスを引数として渡すだけで、Excelファイルを読み込むことができます。以下は、sample.xlsxファイルを読み込む例です。

import pandas as pd
df = pd.read_excel('sample.xlsx')
print(df)

上記のコードを実行すると、sample.xlsxファイルが読み込まれて、その内容が出力されます。

シート名指定でExcelファイルを読み込む方法

Excelファイルには、複数のシートが存在する場合があります。pandasでは、シート名を指定して特定のシートを読み込むことができます。以下は、sample.xlsxファイルのSheet2を読み込む例です。

import pandas as pd
df = pd.read_excel('sample.xlsx', sheet_name='Sheet2')
print(df)

上記のコードを実行すると、sample.xlsxファイルのSheet2が読み込まれて、その内容が出力されます。

シート名指定でExcelファイルに書き込む方法

pandasを使ってExcelファイルに書き込む場合、ExcelWriterを使用します。以下は、sample.xlsxファイルのSheet3にデータを書き込む例です。

import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
writer = pd.ExcelWriter('sample.xlsx', engine='openpyxl')
df.to_excel(writer, sheet_name='Sheet3')
writer.save()

上記のコードを実行すると、DataFrameの内容がsample.xlsxファイルのSheet3に書き込まれます。

複数シートを一括で読み込む、書き込む方法

Excelファイルには、複数のシートが存在する場合があります。pandasでは、Excelファイル内の全てのシートを一括で読み込むことができます。以下は、sample.xlsxファイル内の全てのシートを読み込む例です。

import pandas as pd
xls = pd.read_excel('sample.xlsx', sheet_name=None)
for sheet_name, df in xls.items():
    print(f'Sheet name: {sheet_name}')
    print(df)

上記のコードを実行すると、sample.xlsxファイル内の全てのシートが読み込まれて、その内容が出力されます。

また、Excelファイルに全てのシートを一括で書き込むこともできます。以下は、sample.xlsxファイルにDataFrameを書き込み、その内容を全てのシートに一括で反映する例です。

import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
writer = pd.ExcelWriter('sample.xlsx', engine='openpyxl')
df.to_excel(writer, sheet_name='Sheet4', index=False)
writer.save()
with pd.ExcelWriter('sample.xlsx', engine='openpyxl', mode='a') as writer:
    for sheet_name in writer.book.sheetnames:
        writer.sheets[sheet_name].column_dimensions.auto_size = True
        df.to_excel(writer, index=False)

上記のコードを実行すると、DataFrameの内容がsample.xlsxファイルのSheet4に書き込まれ、その内容が全てのシートに一括で反映されます。

エクセルファイルとpandasデータフレームの相互変換の注意点

pandasでExcelファイルを扱う場合、データフレームとExcelファイルの相互変換が必要になる場合があります。しかし、注意すべき点がいくつかあります。

  • データフレームのカラム名に禁止文字が含まれる場合、Excelファイルに書き込むことができない。
  • Excelファイルに書き込んだデータを再度読み込む場合、データ型が変わることがある。

上記の点に注意して、データフレームとExcelファイルの相互変換を行ってください。

まとめ

pandasを使えば、Excelファイルの読み込みや書き込みが簡単に行えます。特定のシートのみを読み込むこともでき、複数のシートを一括で処理することもできます。また、データフレームとExcelファイルの相互変換も可能ですが、注意点があるため、十分に注意して行うようにしましょう。

以上が、Pythonのpandasでエクセルファイルをシート名指定して読み込む、書き込む方法についての説明でした。Excelファイルを扱う際には、pandasを使うことで、効率的にデータ処理を行うことができます。

最後に、この記事がExcelファイルを扱う際の参考になれば幸いです。