在学习大熊猫的过程中,我试图解决这个问题的答案已有好几个月了.我使用SAS进行日常工作,这非常适合它的核心支持.然而,由于其他许多原因,SAS作为一款软件非常糟糕.
有一天,我希望用python和pandas替换我对SAS的使用,但我目前缺乏大型数据集的核心工作流程.我不是在谈论需要分布式网络的"大数据",而是说文件太大而无法容纳在内存中,但又足够小以适应硬盘驱动器.
我的第一个想法是用于HDFStore在磁盘上保存大型数据集,并仅将我需要的部分拉入数据帧进行分析.其他人提到MongoDB是一种更容易使用的替代品.我的问题是:
有哪些最佳实践工作流程可用于完成以下任务:
真实世界的例子将非常受欢迎,尤其是那些在"大数据"上使用熊猫的人.
编辑 - 我希望如何工作的示例:
我正在尝试找到执行这些步骤的最佳实践方法.阅读关于pandas和pytables的链接似乎附加一个新列可能是个问题.
编辑 - 特别回应杰夫的问题:
if var1 > 2 then newvar = 'A' elif var2 = 4 then newvar = 'B'.这些操作的结果是我的数据集中每条记录的新列.我很少会在数据集中添加行.我几乎总是会创建新的列(统计/机器学习用语中的变量或特征).
我正在尝试将Python程序的RAM使用限制为一半,以便在使用所有RAM时不会完全冻结,为此我使用以下代码无效,我的笔记本电脑仍在冻结:
import sys
import resource
def memory_limit():
rsrc = resource.RLIMIT_DATA
soft, hard = resource.getrlimit(rsrc)
soft /= 2
resource.setrlimit(rsrc, (soft, hard))
if __name__ == '__main__':
memory_limit() # Limitates maximun memory usage to half
try:
main()
except MemoryError:
sys.stderr.write('MAXIMUM MEMORY EXCEEDED')
sys.exit(-1)
Run Code Online (Sandbox Code Playgroud)
我正在使用我从main函数调用的其他函数.
我究竟做错了什么?
提前致谢.
PD:我已经搜索了这个并找到了我已经提供的代码,但它仍然没有工作......
我想将 Docker 容器的内存限制为 1 GB。根据文档,我们可以使用以下--memory选项指定所需的内存限制:
$ docker run --memory <size> ...
Run Code Online (Sandbox Code Playgroud)
但是,文档 没有描述页面上任何地方参数的格式或单位:
--memory , -m 内存限制
我应该提供哪些单位--memory以及其他相关选项,例如--memory-reservation和--memory-swap?只是字节?