首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >回归遍历Parquet文件

回归遍历Parquet文件
EN

Stack Overflow用户
提问于 2022-04-07 17:55:54
回答 1查看 148关注 0票数 1

我试图在一个包含23亿个Python观测的大型数据集上运行一个逻辑回归模型。我需要一个标准的回归输出。带有拼花的状态模型看起来很有前途:https://www.statsmodels.org/v0.13.0/large_data.html

代码语言:javascript
运行
复制
import pyarrow as pa
import pyarrow.parquet as pq
import statsmodels.formula.api as smf

class DataSet(dict):
    def __init__(self, path):
        self.parquet = pq.ParquetFile(path)

    def __getitem__(self, key):
        try:
            return self.parquet.read([key]).to_pandas()[key]
        except:
            raise KeyError

LargeData = DataSet('LargeData.parquet')

res = smf.ols('Profit ~ Sugar + Power + Women', data=LargeData).fit()

但是,它说:“另外,您可以向这个示例DataSet对象添加代码,只返回行的一个子集,直到您构建了一个好的模型。然后,您可以在更多的数据上修改您的最终模型。”

这就是我一整天都试着去工作的地方。我不太熟悉Python类,也不太熟悉如何通过块迭代行分组。

我相信这只是几行代码,有人能帮我吗?

P.S.:理想情况下,我当然需要分布式模型和子集数据的组合。但是我已经很乐意在不耗尽内存的情况下获得这个子集。谢谢!

EN

回答 1

Stack Overflow用户

发布于 2022-04-08 08:55:54

您可以通过使用行组来读取拼花文件的“子集”:

代码语言:javascript
运行
复制
import random
row_group = random.rand_range(self.parquet.num_row_groups) 
return self.parquet.read_row_group(row_group).to_pandas()

我不确定在您的情况下如何做到这一点,也许可以选择一个任意/随机的可用行组。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71786877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档