クラウドストレージ上のCSVファイルをPythonで読み書きする方法

この記事では、Pythonを用いてクラウドストレージ上のCSVファイルを読み書きする方法について詳しく解説します。具体的なコード例、その詳細解説、さらには応用例まで、豊富な内容でご紹介します。

目次

はじめに:クラウドストレージとCSVファイル

クラウドストレージは、データをインターネット上で保存・管理できるサービスです。多くの企業や個人が利用しており、その中でもCSVファイルはデータ分析やレポート作成によく使用されます。Pythonを使えば、これらのCSVファイルを効率よく読み書きすることができます。

必要なライブラリと設定

このチュートリアルでは以下のライブラリを使用します。
– pandas: CSVファイルの読み書き
– google-auth: Google Cloud Storageの認証
– google-cloud-storage: Google Cloud Storageからのデータアクセス

ライブラリのインストール

pip install pandas google-auth google-cloud-storage

基本的な読み書きの方法

クラウドストレージからCSVファイルを読み込み、編集後に再度アップロードする基本的な手法を説明します。

CSVファイルの読み込み

from google.cloud import storage
import pandas as pd

# Google Cloud Storageの認証
client = storage.Client.from_service_account_json('path/to/your-service-account-file.json')

# バケットとオブジェクトの指定
bucket = client.get_bucket('your_bucket_name')
blob = bucket.blob('your_file.csv')

# CSVファイルを一時的にダウンロード
blob.download_to_filename('temp.csv')

# pandasでCSVファイルを読み込み
df = pd.read_csv('temp.csv')

# データフレームを表示
print(df.head())

CSVファイルの書き込み

# データの変更(例:新しいカラムを追加)
df['new_column'] = df['old_column'] * 2

# CSVファイルに書き込み
df.to_csv('temp.csv', index=False)

# クラウドにアップロード
blob.upload_from_filename('temp.csv')

応用例

1. 条件に基づくデータのフィルタリングとアップロード

# 条件に一致するデータだけをフィルタリング
filtered_df = df[df['old_column'] > 100]

# フィルタリングしたデータを新しいCSVとして保存
filtered_df.to_csv('filtered.csv', index=False)

# 新しいCSVをクラウドにアップロード
new_blob = bucket.blob('filtered_file.csv')
new_blob.upload_from_filename('filtered.csv')

2. 複数のCSVファイルを一括処理

# バケット内の全CSVファイルをリストアップ
blobs = bucket.list_blobs(prefix='csv_folder/')

# それぞれのCSVファイルを処理
for blob in blobs:
    blob.download_to_filename('temp.csv')
    df = pd.read_csv('temp.csv')
    # 何らかの処理(例:カラムの追加)
    df['new_column'] = df['old_column'] * 2
    df.to_csv('temp.csv', index=False)
    blob.upload_from_filename('temp.csv')

3. Google Cloud Schedulerを用いた自動処理

Google Cloud Schedulerを用いれば、上述のPythonスクリプトを定期的に実行することも可能です。これによって、例えば毎日のレポート作成を自動化するといったことも可能です。

まとめ

Pythonを用いてクラウドストレージ上のCSVファイルを効率よく読み書きする方法について解説しました。この知識を活かして、データ処理作業をより効率的に行いましょう。

コメント

コメントする

目次