2016-06-21 12 views
8

DatFrameをredisに設定してから取得すると、redisは文字列を返し、このstrをDataFrameに変換する方法を見つけることができないので、これら2つを適切に行う方法はありますか?pandas.DataFrameをredisに/から設定/取得する方法は?

+0

Redisに置く前にシリアル化を使用して、Redisから読み込んだときに逆シリアル化します。 –

答えて

21

セット:

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

がGET:私は私のデータフレームであるためDecimalオブジェクトのmsgpackを使用することができませんでした

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

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"))) 

このことについて具体的なデータフレーム何も何もありません:Intead私はデータフレームdfとRedisののローカルインスタンスを想定し、このように一緒にピクルスとZLIBを組み合わせます。

警告

  • msgpackを使用して、他の答えは優れている - それはあなたのため
  • 酸洗は危険なことができます動作するかどうか、それを使用する - あなたのRedisのサーバーが安全であることが必要か、あなたが求めていますトラブルのため
関連する問題