tutorial - Cómo encurtir o almacenar la sesión de cuaderno Jupyter(IPython) para más tarde
pandas python tutorial español pdf (3)
(Prefiero comentar que ofrecer esto como una respuesta real, pero necesito más reputación para comentar).
Puede almacenar la mayoría de las variables similares a datos de manera sistemática. Lo que suelo hacer es almacenar todos los marcos de datos, matrices, etc. en pandas.HDFStore . Al comienzo del cuaderno, declare
backup = pd.HDFStore(''backup.h5'')
y luego almacena cualquier variable nueva a medida que la produces
backup[''var1''] = var1
Al final, probablemente sea una buena idea
backup.close()
antes de apagar el servidor. La próxima vez que quiera continuar con el cuaderno:
backup = pd.HDFStore(''backup.h5'')
var1 = backup[''var1'']
A decir verdad, también preferiría la funcionalidad incorporada en el cuaderno de ipython. No puede guardar todo de esta manera (por ejemplo, objetos, conexiones), y es difícil mantener el portátil organizado con tantos códigos repetitivos.
Digamos que estoy haciendo un análisis de datos más grande en el cuaderno Jupyter / Ipython con muchos cálculos que requieren mucho tiempo. Luego, por alguna razón, tengo que cerrar el servidor local Jupyter I, pero me gustaría volver a hacer el análisis más tarde, sin tener que volver a realizar todos los cálculos que requieren mucho tiempo.
Lo que me
gustaría
hacer es
pickle
o almacenar toda la sesión de Jupyter (todos los marcos de datos de pandas, matrices np., Variables, ...) para poder cerrar el servidor de forma segura sabiendo que puedo volver a mi sesión exactamente en el mismo estado como antes.
¿Es técnicamente posible? ¿Hay una funcionalidad incorporada que pasé por alto?
EDITAR:
según
this
respuesta, hay un
%store
magic
%store
que debería ser "encurtido ligero".
Sin embargo, debe almacenar las variables manualmente de la siguiente manera:
#inside a ipython/nb session
foo = "A dummy string"
%store foo
cierre de visión, reinicio del núcleo
%store -r foo
# r para actualizar
print(foo) # "A dummy string"
que está bastante cerca de lo que quisiera, pero tener que hacerlo manualmente y no poder distinguir entre diferentes sesiones lo hace menos útil.
Creo que Dill responde bien a tu pregunta.
pip install dill
Guardar una sesión de Notebook:
import dill
dill.dump_session(''notebook_env.db'')
Restaurar una sesión de Notebook:
import dill
dill.load_session(''notebook_env.db'')
Esta pregunta está relacionada con: ¿Cómo almacenar en caché en IPython Notebook?
Para guardar los resultados de las celdas individuales, la magia de almacenamiento en caché es útil.
%%cache longcalc.pkl var1 var2 var3
var1 = longcalculation()
....
Al volver a ejecutar el cuaderno, el contenido de esta celda se carga desde el caché.
Esto no responde exactamente a su pregunta, pero podría ser suficiente cuando los resultados de todos los largos cálculos se recuperen rápidamente. Esto, en combinación con presionar el botón de ejecución en la parte superior del portátil, es para mí una solución viable.
La magia de caché no puede guardar el estado de un cuaderno completo yet . Que yo sepa, todavía no hay otro sistema para reanudar un "cuaderno". Esto requeriría guardar todo el historial del núcleo de Python. Después de cargar la notebook y conectarse a un kernel, esta información debe cargarse.