我已经玩了一段时间的散景,现在我正处于创建互动情节并在线嵌入它们的步骤(例如,在WordPress的帖子中).
然而,即使我花了一些时间来审查和测试散景网站示例中的代码,我也很难理解curdoc()的目的究竟是什么.为了创建一个带有小部件的散景应用程序似乎是必要的,但是从我在资源中找到的内容来看,我并不十分理解它.
具体来说,我最近不得不使用大型数据集(~3 GB)并了解加载过程的速度(即运行 df = pd.read_csv(file)),我打开了一个任务管理器。
正如我所想,我看到我的 Python 进程的内存使用量不断上升。大约在达到 3 GB 时,它已满载。合乎逻辑。
然后,在完成了一些不涉及 Python 的其他任务后,比如说回复电子邮件或在线浏览,我注意到我的任务管理器中的 Python 内存使用率下降了很多,好像我还没有加载任何数据。但是我的笔记本内核仍然在运行(那里没有中断)。
奇怪的是,即使在降低内存使用率之后,我的代码仍然可以运行:我可以通过运行例如以下命令来显示数据帧中的信息:
df.loc[100000:101000,['col1','col2','col3']],
它立即显示了这 1000 行。
或者,如果我运行:
df.info(),
这给了我这个:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3228691 entries, 0 to 3228690
Columns: 117 entries, first_column to last_column
dtypes: category(49), float64(51), object(17)
memory usage: 1.8+ GB
Run Code Online (Sandbox Code Playgroud)
这很奇怪,因为当我运行df.info(memory_usage='deep')而不是仅仅运行时df.info(),它需要更长的时间,我可以在我的任务管理器中看到 Python 进程的内存使用量上升,直到达到 ~1.5 GB。这是输出:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3228691 entries, 0 to 3228690
Columns: 117 entries, first_column to last_column
dtypes: category(49), float64(51), object(17)
memory usage: 4.9 GB …Run Code Online (Sandbox Code Playgroud)