こんにちは。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に保存する方法」でした。