web-dev-qa-db-ja.com

Python DataFrame as CSV as Azure Blobに書き込みます

PythonオブジェクトとAzure blobの読み書き)について2つの質問がありました。

1)Pythonデータフレームをcsvファイルとしてローカルに保存せずに直接Azure Blobに書き込む方法を教えてもらえますか?

関数create_blob_from_text&create_blob_from_streamを使用してみましたが、どれも機能しません。

データフレームを文字列に変換してcreate_blob_from_text関数を使用すると、ファイルはBLOBに書き込まれますが、CSVではなくプレーンな文字列として書き込まれます。

    df_b = df.to_string()
    block_blob_service.create_blob_from_text('test', 'OutFilePy.csv', df_b)  

2)Azure BLOBストレージのjsonファイルを直接Pythonに直接読み込む方法は?

7
AngiSen

1)Pythonデータフレームをcsvファイルとしてローカルに保存せずに直接Azure Blobに書き込む方法を教えてもらえますか?

pandas.DataFrame.to_csv メソッドを使用できます。

サンプルコード:

from Azure.storage.blob import (
    BlockBlobService
)
import pandas as pd
import io

output = io.StringIO()
head = ["col1" , "col2" , "col3"]
l = [[1 , 2 , 3],[4,5,6] , [8 , 7 , 9]]
df = pd.DataFrame (l , columns = head)
print df
output = df.to_csv (index_label="idx", encoding = "utf-8")
print(output)

accountName = "***"
accountKey = "***"
containerName = "test1"
blobName = "test3.json"

blobService = BlockBlobService(account_name=accountName, account_key=accountKey)

blobService.create_blob_from_text('test1', 'OutFilePy.csv', output)

出力結果:

enter image description here

2. Azure Blob Storageのjsonファイルを直接Pythonに直接読み込む方法は?

サンプルコード:

from Azure.storage.blob import (
    BlockBlobService
)

accountName = "***"
accountKey = "***"
containerName = "test1"
blobName = "test3.json"

blobService = BlockBlobService(account_name=accountName, account_key=accountKey)

result = blobService.get_blob_to_text(containerName,blobName)

print(result.content)

出力結果:

enter image description here

お役に立てば幸いです。

12
Jay Gong