DataFrameをredisに設定してから取得すると、redisは文字列を返します。このstrをDataFrameに変換する方法がわかりません。
これら2つを適切に実行するにはどうすればよいですか?
セットする:
redisConn.set("key", df.to_msgpack(compress='zlib'))
取得する:
pd.read_msgpack(redisConn.get("key"))
データフレームにDecimal
オブジェクトがあるため、msgpackを使用できませんでした。代わりに、データフレームdf
とredisのローカルインスタンスを想定して、pickleとzlibを次のように組み合わせました。
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
を使用した他の回答の方が優れています-うまくいく場合はそれを使用してください