Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.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中获取数据并对其进行分析的方法_Python_Json_Pandas - Fatal编程技术网

在python中获取数据并对其进行分析的方法

在python中获取数据并对其进行分析的方法,python,json,pandas,Python,Json,Pandas,我正在做一个项目,其中我必须分析美国迄今为止发生的龙卷风的大量数据。由于python擅长数据分析,我选择了它。但我有一些问题需要澄清: 1.我使用熊猫进行数据分析。到目前为止,我所做的是创建了一个包含所有.csv文件的大数据帧(1GB.csv文件)。现在让我们假设我想计算2000年发生的总死亡人数。所以我写了一个查询。查询正在获取结果,但需要一些时间。将所有数据存储在dataframe中并获取数据好吗?或者还有其他更快的方法吗。 2.另一种方法是创建整个文件的json字符串并查询该json字符串

我正在做一个项目,其中我必须分析美国迄今为止发生的龙卷风的大量数据。由于python擅长数据分析,我选择了它。但我有一些问题需要澄清: 1.我使用熊猫进行数据分析。到目前为止,我所做的是创建了一个包含所有.csv文件的大数据帧(1GB.csv文件)。现在让我们假设我想计算2000年发生的总死亡人数。所以我写了一个查询。查询正在获取结果,但需要一些时间。将所有数据存储在dataframe中并获取数据好吗?或者还有其他更快的方法吗。 2.另一种方法是创建整个文件的json字符串并查询该json字符串。我没有用这种方法做过任何事情。这是好的吗


谢谢。

您可以使用sframe库而不是pandas:

sframe库允许您保存为二进制格式,该格式加载速度快且易于索引。Sframe允许您使用比可用RAM大得多的数据集,因为它可以成批工作并将数据分页到磁盘。该库还可以有效地利用多个核心来加速连接和其他操作,根据我的经验,对于您的用例来说,它应该快得多

该语法比pandas稍不方便,但功能类似,并使用to_dataframe()运算符将sframe转换为pandas dataframes

要安装它,请执行以下操作:

pip install sframe

您可以使用read_csv API读取csv文件,然后使用save API将其保存为二进制格式,然后使用load API加载二进制格式。以上链接中已介绍了所有内容。

熊猫在内存使用方面有一些限制。这也是python的一个普遍问题,因为内存分配是惰性的。因此,一旦你的内存不够,它就会变脏

我在这里看到了两个领域。1.节省内存,2。优化时间

你可以考虑:

  • 为了提高内存效率,请阅读以下内容。 1.1如果您同时需要所有数据(例如用于超级聚合统计(总和([所有列])),您可以小心地在数据帧中删除一些不需要的列。或者使用切换到pandas以外的其他数据(例如hdf5、pyrocksdb、leveldb…),这对您来说意味着不太舒服的分析
  • 对于某些操作,时间因素是数据帧的正确设置。请尝试检查索引架构,例如,避免在行上循环。 2.2在某些任务中使用numpy向量方法将比pandas+python脚本编写快得多

  • 我个人在使用pandas+SQLLite等混合方法以及它们之间的小型批处理方面也有很好的经验(参见第1点)