CodeGym /Javaコース /Python SELF JA /pandasライブラリを使ってExcelファイルにデータを書き込む

pandasライブラリを使ってExcelファイルにデータを書き込む

Python SELF JA
レベル 27 , レッスン 3
使用可能

やあ、コードを楽しむみんな!元気かい?もしそうじゃなくても、このレクチャーで少しでも気分が良くなるといいな。 今日は、可愛くてフレンドリーなライブラリpandasを使って、Excelファイルにデータを書き込む方法を学ぶよ。 あの有名なpandasだよ。このレクチャーは、レポート作成から家計簿管理まで、全てを自動化するための重要な一歩だよ。 オフィススプレッドシートの自動化の達人になりたいって夢見たことがあるなら(誰もが一度は思うよね?)、 君は正しい道を進んでるよ。

1. pandasを使ったExcelへのデータ書き込みの基本

さて、DataFrameに数字やテキストが入ってるとして、そのデータを Excelファイルに変換したいとするよ。どうやってpandasでやるかって? 超簡単だよね!pandasには素晴らしいto_excelメソッドがあって、 データ保存の悩みを全部解決してくれるよ。

どうやって動作するの?

DataFrameをExcelファイルに書き込むには、to_excelメソッドを使うよ。 この関数では、保存したいファイル名を指定したり、データを記録するシート名も指定できるよ。 簡単な例を見てみよう:

Python

import pandas as pd

# 小さなDataFrameを作成
data = {
    'フルーツ': ['リンゴ', 'バナナ', 'サクランボ'],
    '数量': [10, 5, 2]
}
df = pd.DataFrame(data)

# DataFrameをExcelファイルに書き込む
df.to_excel('fruits.xlsx', sheet_name='お気に入りフルーツ', index=False)

print("データが'fruits.xlsx'に正常に記録されました")
    

パラメータについて少し詳しく

  • ファイル名: 'fruits.xlsx'を指定したよ。拡張子'.xlsx'を忘れないで。 忘れるとExcelが理解できないファイルになっちゃうよ。
  • sheet_name: 'お気に入りフルーツ'を設定したよ。 シート名だね。ここにデータを書き込むよ。
  • index: デフォルトでは、pandasはDataFrameのインデックスを最初の列として記録するよ。 index=Falseと書いて、この動作を避けたよ。

2. 複数シートの操作

どうやって1つのExcelファイル内に複数のシートにデータを書き込むか? データが多いほど楽しくなるよね!以下の例を見てみよう。

ここではpandas.ExcelWriterを使うよ。 これを使うと、さらに柔軟にファイルを操作できるんだ。

Python

# 2つのDataFrameを作成
data1 = {'フルーツ': ['リンゴ', 'オレンジ'], '数量': [5, 7]}
data2 = {'野菜': ['ニンジン', 'キャベツ'], '数量': [3, 4]}

df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)

# 複数シートでExcelファイルを作成
with pd.ExcelWriter('produce.xlsx') as writer:
    df1.to_excel(writer, sheet_name='フルーツ', index=False)
    df2.to_excel(writer, sheet_name='野菜', index=False)

print("データが'produce.xlsx'に正常に記録され、異なるシートに保存されました。")
    

なんでこれが役立つの?

複数のシート操作は、データをカテゴリごとに論理的に分ける必要があるときに便利だよ。 例えば、月別のレポートや製品の種類ごとに分ける場合とかね。Excelはデータを1つのファイルにまとめつつ、 シートごとに分類する万能のコンテナになるよ。

3. 実践課題

ここでちょっとしたチャレンジの時間だよ。新しいExcelファイルを作成して、 本屋さんでの本の売上データを記録しよう。 2つのシートを作るよ。1つは1月の売上、もう1つは2月の売上ね。 以下は、始めやすいように少しデータを提供するよ:

  • 1月: 本「みんなのPython」(売上: 50)、本「JavaScriptの秘密」(売上: 30)。
  • 2月: 本「みんなのPython」(売上: 70)、本「JavaScriptの秘密」(売上: 40)。

自分でこれを実装してみて。その後、下記の例を参考にしてもいいよ。

Python

# 課題の解決例

# 1月のデータ
january_data = {'本': ['みんなのPython', 'JavaScriptの秘密'], '売上': [50, 30]}
january_df = pd.DataFrame(january_data)

# 2月のデータ
february_data = {'本': ['みんなのPython', 'JavaScriptの秘密'], '売上': [70, 40]}
february_df = pd.DataFrame(february_data)

# 2か月分のデータを含むExcelファイルの作成
with pd.ExcelWriter('book_sales.xlsx') as writer:
    january_df.to_excel(writer, sheet_name='1月', index=False)
    february_df.to_excel(writer, sheet_name='2月', index=False)

print("データが'book_sales.xlsx'に正常に記録されました。")
    

book_sales.xlsxファイルを確認して、作成されたシートを楽しんでね!

4. 解決策の議論と最適化

気づいたと思うけど、pandasを使ったExcelへのデータ書き込みは本当に簡単だよ。 だけど、注意するべきポイントもいくつかあるんだ:

  • メモリ使用量の最適化: 巨大なDataFrameがある場合、 データを小分けして順次記録することを検討しよう。
  • フォーマット: 表のヘッダーにスタイルを追加するなどフォーマットを工夫できるよ。 これはopenpyxlライブラリとそのメソッドが必要になるね。
  • 複数回の記録: 同じファイルに頻繁にデータを記録したい場合、 ExcelWritermode='a'を考慮してみて。

将来の仕事を改善するためのいくつかの例

将来、君が自動化の王様(もしくは女王様?)になったら、問題を見つけて解決するスキルが必要になるよ。 例えば、会社が毎日のレポートを集めると決めたら、 pandasExcelWriterでこのプロセスを自動化しちゃおう。 もしかしたら休日や祝日の自動チェックを追加して、その日は記録をつけないようにしたりね。

だから、どんどん実験して仕事を最適化していこう!Pythonとpandasは君の味方だよ。

コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION