Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.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_Pandas_Sas_Statistics - Fatal编程技术网

Python 获取任何列包含特定值的行的子集

Python 获取任何列包含特定值的行的子集,python,pandas,sas,statistics,Python,Pandas,Sas,Statistics,我有一个非常大的数据文件(foo.sas7bdat),我希望在不将整个数据文件加载到内存的情况下从中筛选行。例如,我可以通过执行以下操作打印数据集的前20行,而无需将整个文件加载到内存中: import pandas import itertools with pandas.read_sas('foo.sas7bdat') as f: for row in itertools.islice(f,20): print(row) 但是,我不清楚如何只打印(或者最好是放置在

我有一个非常大的数据文件(foo.sas7bdat),我希望在不将整个数据文件加载到内存的情况下从中筛选行。例如,我可以通过执行以下操作打印数据集的前20行,而无需将整个文件加载到内存中:

import pandas
import itertools

with pandas.read_sas('foo.sas7bdat') as f:
    for row in itertools.islice(f,20):
        print(row)

但是,我不清楚如何只打印(或者最好是放置在新文件中)包含数字123.1的列的行。我如何才能做到这一点?

熊猫能够一次提取一个数据帧块。从read_sas()文档到“chunksize”,我遇到了以下问题:

这将得到100000行的数据块。 至于另一个问题,你需要一个查询。然而,我不知道问题的制约因素。如果创建一个包含所有列的数据帧,那么仍然可能会导致内存空间溢出,因此一种有效的方法是收集索引并将其放入一个集合中,然后对这些索引进行排序,如果要将它们放入数据帧中,则使用.iloc获取这些条目

您可能需要使用考虑到这一点的工具。Dask是在集群上使用的一个很好的替代方案

for chunk in pd.read_sas('foo.sas7bdat', interator=True, chunksize=100000):
    print(chunk)