pandasでDataFrameをCSV形式でAzure Blob Storageに保存する方法

スポンサードリンク



こんにちは。sinyです。

本記事ではpandasでDataFrameをCSV形式でAzure Blob Storageに保存する方法を紹介します。

Azure Blob Storageの基本的な利用方法については以下の関連記事を参照ください。

以下の前提でサンプルコードを記載します。

  • ストレージアカウント:stracnt01
  • コンテナ名:quickstartblobs
  • 出力ファイル名:output.csv

予めAzure CLIのaz loginコマンドでAzureにサインインしておきます。
Pythonインタプリタ上で以下のコードを実行すると、データフレーム(df)の内容がAzure Blob storageにcsv形式で保存されます。

from azure.storage.blob import BlockBlobService, PublicAccess
import pandas as pd
account_name="stracnt01"
account_key="<アカウントアクセスキー>"

block_blob_service = BlockBlobService(account_name=account_name, account_key=account_key)
container_name ='quickstartblobs'
block_blob_service.set_container_acl(container_name, public_access=PublicAccess.Container)
head = ["col1" , "col2" , "col3"]
l = [[1 , 2 , 3],[4, 5, 6] , [8 , 7 , 9]]
df = pd.DataFrame (l , columns = head)
>>> df
   col1  col2  col3
0     1     2     3
1     4     5     6
2     8     7     9
output = df.to_csv (index_label="idx", encoding = "utf-8")
block_blob_service.create_blob_from_text(container_name, 'output.csv', output)

 

BlockBlobServiceクラスにストレージアカウント名とアクセスキーを指定してAzure Blob Storageにアクセスするためのインスタンスを生成します。
その後、set_container_aclメソッドを使ってBLOB がパブリックになるようにコンテナーに対するアクセス許可を設定します。

今回はpandasを使って以下のようなDataFrameを作成しています。

>>> df
col1 col2 col3
0 1 2 3
1 4 5 6
2 8 7 9

 

その後、to_csvメソッドを使ってDataFrameをcsv形式で書き出します。

output = df.to_csv (index_label="idx", encoding = "utf-8")

 

最後にcreate_blob_from_textメソッドを使ってoutputをBlob Storageに書き込みます。

block_blob_service.create_blob_from_text(container_name, 'output.csv', output)

 

create_blob_from_textの引数
  • 第1引数:コンテナ名
  • 第2引数:保存するファイル名
  • 第3引数:保存するデータ)

以下のようにAzure Blob Storageにcsv形式でデータが保存されます。

 

以上、「pandasでDataFrameをCSV形式でAzure Blob Storageに保存する方法」でした。

 

 

おすすめの記事