[英]how does the magic store commands for dataframe work?
我分别在两个 jupyter 笔记本(N1 和 N2)中创建了两个数据帧(df1 和 df2)。
在第 1 天,我使用以下 store 命令在N2
jupyter notebook 中使用df1
及其变量
%store -r df1
但是在第 25 天,我创建了一个新的 jupyter notebook N3
并再次使用以下 store 命令
%store -r df1
它似乎很容易地将数据帧df1
所有细节都轻松地拉入N3
jupyter notebook 中?
这是如何运作的?
它们不是仅对特定的 jupyter 笔记本会话有效吗?
那么,我们可以不将所有数据帧存储为文件,而是执行存储命令并随时轻松存储/检索它们吗?
%store
魔法命令将变量存储在 IPython 的数据库中(它本质上是在后端使用 pickle 来存储),以便您稍后在不同的笔记本或会话中恢复它。
例如
>>> myvar = "store this string"
>>> %store myvar
Stored 'myvar' (str)
>>> %store
Stored variables and their in-db values:
myvar -> 'store this string'
现在,您可以恢复此变量
>>> %store -r myvar
>>> myvar
'store this string'
Storemagic是 IPython 的一项功能,它“在 IPython 的数据库中存储变量、别名和宏”。 因为它是一个 IPython 功能,而不是 Jupyter 独有的,所以您可以在许多 IPython 和 Jupyter 会话中存储和恢复变量。
在我的环境 (IPython 7.19.0) 中,变量存储在目录中:
$HOME/.ipython/profile_default/db/autorestore
当使用%store <name>
时,它们每个文件存储一个。 文件本身是存储变量的腌制表示。 您可以使用以下方法手动加载变量:
import pickle
# Name of the previously stored variable
stored_var = 'test'
# myvar will contain the variable previously stored with "%store test"
myvar_filename = get_ipython().ipython_dir + '/profile_default/db/autorestore/' + stored_var
with open(myvar_filename, 'rb') as f:
myvar = pickle.load(f)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.