如何向/从 Redis 设置/获取 pandas.DataFrame?

新手上路,请多包涵

将 DataFrame 设置为 Redis,然后将其取回后,Redis 返回一个字符串,我想不出将此 str 转换为 DataFrame 的方法。

我怎样才能适当地做这两个?

原文由 Alex Luya 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

放:

 redisConn.set("key", df.to_msgpack(compress='zlib'))

得到:

 pd.read_msgpack(redisConn.get("key"))

原文由 Alex Luya 发布,翻译遵循 CC BY-SA 3.0 许可协议

由于 Decimal 我的数据框中的对象,我无法使用 msgpack。相反,我像这样将 pickle 和 zlib 组合在一起,假设有一个数据 df 和一个本地 Redis 实例:

 import pickle
import redis
import zlib

EXPIRATION_SECONDS = 600

r = redis.StrictRedis(host='localhost', port=6379, db=0)

# Set
r.setex("key", EXPIRATION_SECONDS, zlib.compress( pickle.dumps(df)))

# Get
rehydrated_df = pickle.loads(zlib.decompress(r.get("key")))

没有任何关于此的特定数据框。

注意事项

  • 使用 msgpack 的另一个答案更好 - 如果它适合你,请使用它
  • 酸洗可能很危险——你的 Redis 服务器需要安全,否则你就是在自找麻烦

原文由 Mark Chackerian 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题