Python 大(r)数据集的熊猫
我有一个相当复杂的数据库,我以CSV格式提供给我的客户。到达该数据库的逻辑是在sqlite3中完成的Python处理和SQL连接的复杂组合 大约有15个源数据集,从几百条记录到数百万条(但相当短)记录不等 为了清晰、可维护性和其他几个原因,我不希望混合使用Python/sqlite3逻辑,而是希望将所有逻辑移到一组高效的Python脚本中,并完全绕过sqlite3Python 大(r)数据集的熊猫,python,database,sqlite,pandas,Python,Database,Sqlite,Pandas,我有一个相当复杂的数据库,我以CSV格式提供给我的客户。到达该数据库的逻辑是在sqlite3中完成的Python处理和SQL连接的复杂组合 大约有15个源数据集,从几百条记录到数百万条(但相当短)记录不等 为了清晰、可维护性和其他几个原因,我不希望混合使用Python/sqlite3逻辑,而是希望将所有逻辑移到一组高效的Python脚本中,并完全绕过sqlite3 我知道答案和路径应该是Pandas,但您能告诉我这是否是上述大型数据库的正确路径吗?我一直在使用Pandas,数据集大小>20GB(
我知道答案和路径应该是Pandas,但您能告诉我这是否是上述大型数据库的正确路径吗?我一直在使用Pandas,数据集大小>20GB(在具有8GB RAM的Mac上) 我的主要问题是,有一个知识使得在OSX上写大于2GB的文件是不可能的。但是,使用HDF5可以避免这种情况
我在文章和中找到了足够的技巧,可以让一切顺利运行。主要课程是检查数据框的内存使用情况,并将列的类型转换为尽可能最小的数据类型 熊猫答案的复杂性将取决于它们有多大。特别是如果它们适合记忆(我想不会吧?),谢谢约翰。我需要做一些计算,我也许可以把它放在内存中。。。但让我们假设最坏的情况——不适合RAM的大型数据库。还值得学习和追求熊猫吗?我不能说。当然有可能,但有价值的东西只有你自己能弄清楚。是的,它仍然值得学习。您可以使用chunksize参数读取块中的\u csv,并加载任意大小的数据。这就是说,使用本机导入功能加载它可能会更快—对于大文件,加载速度通常会快10倍。如果系统支持并行化操作,您仍然可以重新格式化和管道输出。