Python 3 – PythonパンダでExcelを書く

Python

PythonパンダでExcelを作成します。 最初にPandasDataFrameに変換し、次にDataFrameをExcelに書き込むことで、任意のデータ(リスト、文字列、数値など)をExcelに書き込むことができます。

Pandas DataFrameをExcelファイル(拡張子:.xlsx、.xls)としてエクスポートするには、 to_excel() 方法。

関連コース: Pythonパンダを使用したデータ分析

installxlwt、openpyxl

to_excel() 内部でxlwtおよびopenpyxlというライブラリを使用します。

  • xlwtは、.xlsファイル(Excel2003までの形式)の書き込みに使用されます。
  • openpyxlは、.xlsx(Excel2007以降の形式)の記述に使用されます。

どちらもpipでインストールできます。 (環境によってはpip3)

1
2
$ pip install xlwt
$ pip install openpyxl

Excelを書く

DataFrameをExcelファイルに書き込む

最後に説明する既存のExcelファイルにopenpyxlを追加する場合は、openpyxlをインポートする必要があります。
データフレームは以下に定義されています。

1
2
3
4
5
6
7
8
9
10
11
import pandas as pd
import openpyxl

df = pd.DataFrame([[11, 21, 31], [12, 22, 32], [31, 32, 33]],
index=['one', 'two', 'three'], columns=['a', 'b', 'c'])

print(df)




パスをの最初の引数として指定できます to_excel() method

注意: 元のファイルのデータは上書き時に削除されます。

議論 new_sheet_name シートの名前です。 省略した場合、名前が付けられます Sheet1

1
df.to_excel('pandas_to_excel.xlsx', sheet_name='new_sheet_name')

Python Write Excel

関連コース: Pythonパンダを使用したデータ分析

インデックス(行名)、列(列名)、引数インデックス、列を書き込む必要がない場合、columnsはFalseです。

1
df.to_excel('pandas_to_excel_no_index_header.xlsx', index=False, header=False)

複数のDataFrameをExcelファイルに書き込む

ExcelWriterオブジェクトを使用すると、複数のパンダを使用できます。 DataFrameオブジェクトは別のシートにエクスポートできます。

例として、パンダ。 別のDataFrameオブジェクトを準備します。

1
2
3
4
5
6
df2 = df[['a', 'c']]
print(df2)




次に、次のようなExcelWriter()関数を使用します。

1
2
3
with pd.ExcelWriter('pandas_to_excel.xlsx') as writer:
df.to_excel(writer, sheet_name='sheet1')
df2.to_excel(writer, sheet_name='sheet2')

ブロック内でwriter.save()、writer.close()を呼び出す必要はありません。

既存のExcelファイルに追加

DataFrameを既存のExcelファイルに追加できます。 以下のコードは、既存のファイルを開き、データフレームのデータを含む2つのシートを追加します。

注意: openpyxlを使用して処理されるため、.xlsxファイルのみが含まれます。

1
2
3
4
5
6
path = 'pandas_to_excel.xlsx'

with pd.ExcelWriter(path) as writer:
writer.book = openpyxl.load_workbook(path)
df.to_excel(writer, sheet_name='new_sheet1')
df2.to_excel(writer, sheet_name='new_sheet2')

関連コース: Pythonパンダを使用したデータ分析

Hope this helps!

Source link

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です