Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 大(r)数据集的熊猫_Python_Database_Sqlite_Pandas - Fatal编程技术网

Python 大(r)数据集的熊猫

Python 大(r)数据集的熊猫,python,database,sqlite,pandas,Python,Database,Sqlite,Pandas,我有一个相当复杂的数据库,我以CSV格式提供给我的客户。到达该数据库的逻辑是在sqlite3中完成的Python处理和SQL连接的复杂组合 大约有15个源数据集,从几百条记录到数百万条(但相当短)记录不等 为了清晰、可维护性和其他几个原因,我不希望混合使用Python/sqlite3逻辑,而是希望将所有逻辑移到一组高效的Python脚本中,并完全绕过sqlite3 我知道答案和路径应该是Pandas,但您能告诉我这是否是上述大型数据库的正确路径吗?我一直在使用Pandas,数据集大小>20GB(

我有一个相当复杂的数据库,我以CSV格式提供给我的客户。到达该数据库的逻辑是在sqlite3中完成的Python处理和SQL连接的复杂组合

大约有15个源数据集,从几百条记录到数百万条(但相当短)记录不等

为了清晰、可维护性和其他几个原因,我不希望混合使用Python/sqlite3逻辑,而是希望将所有逻辑移到一组高效的Python脚本中,并完全绕过sqlite3


我知道答案和路径应该是Pandas,但您能告诉我这是否是上述大型数据库的正确路径吗?

我一直在使用Pandas,数据集大小>20GB(在具有8GB RAM的Mac上)

我的主要问题是,有一个知识使得在OSX上写大于2GB的文件是不可能的。但是,使用HDF5可以避免这种情况


我在文章和中找到了足够的技巧,可以让一切顺利运行。主要课程是检查数据框的内存使用情况,并将列的类型转换为尽可能最小的数据类型

熊猫答案的复杂性将取决于它们有多大。特别是如果它们适合记忆(我想不会吧?),谢谢约翰。我需要做一些计算,我也许可以把它放在内存中。。。但让我们假设最坏的情况——不适合RAM的大型数据库。还值得学习和追求熊猫吗?我不能说。当然有可能,但有价值的东西只有你自己能弄清楚。是的,它仍然值得学习。您可以使用chunksize参数读取块中的\u csv,并加载任意大小的数据。这就是说,使用本机导入功能加载它可能会更快—对于大文件,加载速度通常会快10倍。如果系统支持并行化操作,您仍然可以重新格式化和管道输出。