Po ustawieniu DatFrame na redis, a następnie od niego, redis zwraca ciąg, i nie mogę wymyślić sposób przekonwertowania tego str do DataFrame, więc jak zrobić te dwa odpowiednio? Dzięki.Jak ustawić/uzyskać pandas.DataFrame do/z redis?
8
A
Odpowiedz
21
zestaw:
redisConn.set("key", df.to_msgpack(compress='zlib'))
get:
pd.read_msgpack(redisConn.get("key"))
1
nie mogłem użyć msgpack powodu Decimal
obiektów w moim dataframe. Intead I połączeniu marynatę i zlib razem tak, zakładając dataframe df
i lokalną instancję 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")))
nie ma nic nic dataframe specyficzny ten temat.
Ostrzeżenia
- druga odpowiedź za pomocą
msgpack
jest lepiej - użyj go, jeśli to działa dla Ciebie - wytrawiania może być niebezpieczne - serwer Redis musi być bezpieczny lub prosisz dla kłopotów
użyć serializacji przed wprowadzeniem do Redis i deserializacji podczas czytania z Redis. –