【发布时间】:2022-03-09 03:23:42
【问题描述】:
给定一个包含一些数据的 pandas Dataframe,将这些数据存储到 Firebase 的最佳方法是什么?
我应该将 Dataframe 转换为本地文件(例如 .csv、.txt)然后将其上传到 Firebase Storage,还是可以直接存储 pandas Dataframe 而无需转换?还是有更好的最佳做法?
更新 01/03 - 到目前为止,我已经有了这个解决方案,它需要在本地编写一个 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
【问题讨论】:
-
您要查询它还是只存储文件?如果要对数据执行查询,则需要遵守 Firebase 数据库数据类型。
-
没有查询只是为了再次检索数据作为数据框
-
已尝试使用此pypi.org/project/python-firebase。我认为您必须编写自定义脚本。
-
我认为 firebase 不适合表格数据结构,但我能想到的最好方法是将 DataFrame 的
to_json方法与orient='records'一起使用,并将每一行保存为文档.如果它是一个小表,你也可以使用orient='table',它也存储元数据(数据类型等)。
标签: python pandas firebase dataframe