如何将 Dataframe 数据存储到 Firebase 存储?

Joh*_*ews 5 python dataframe pandas firebase

给定一个包含一些数据的 Pandas Dataframe,将这些数据存储到 Firebase 的最佳方法是什么?

我应该将 Dataframe 转换为本地文件(例如 .csv、.txt)然后将其上传到 Firebase Storage,还是也可以直接存储 Pandas Dataframe 而无需转换?或者有更好的最佳实践吗?

03年 1 月更新- 到目前为止,我已经使用了这个解决方案,它需要在本地编写一个 csv 文件,然后读入并上传它,然后删除本地文件。然而,我怀疑这是最有效的方法,因此我想知道它是否可以做得更好更快?

import os
import firebase_admin
from firebase_admin import db, storage

cred   = firebase_admin.credentials.Certificate(cert_json)
app    = firebase_admin.initialize_app(cred, config)
bucket = storage.bucket(app=app)

def upload_df(df, data_id):
    """
    Upload a Dataframe as a csv to Firebase Storage
    :return: storage_ref
    """

    # Storage location + extension
    storage_ref = data_id + ".csv"

    # Store locally
    df.to_csv(data_id)

    # Upload to Firebase Storage
    blob    = bucket.blob(storage_ref)
    with open(data_id,'rb') as local_file:
        blob.upload_from_file(local_file)

    # Delete locally
    os.remove(data_id)

    return storage_ref
Run Code Online (Sandbox Code Playgroud)

Cha*_*dau 5

使用python- firebaseto_dict

postdata = my_df.to_dict()

# Assumes any auth/headers you need are already taken care of.
result = firebase.post('/my_endpoint', postdata, {'print': 'pretty'})
print(result)
# Snapshot info
Run Code Online (Sandbox Code Playgroud)

您可以使用快照信息和端点取回数据,并df使用from_dict(). 您可以将此解决方案调整为SQLJSON解决方案,它pandas也有支持。

另外和不同的地方,从您的脚本执行,你可能会考虑治疗火力为DB和使用DBAPI从firebase_admin(检查这个了)。

至于是否符合最佳实践,在不了解您的用例的情况下很难说。

  • 我的答案是用于 firebase 存储并建议使用 firebase DB 替代方案 (2认同)