为什么__getitem__没有被dask系列实现?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么__getitem__没有被dask系列实现?相关的知识,希望对你有一定的参考价值。

我无法对dask系列对象做任何有用的事情。在我设法创建一个之后,我无法在低于系列对象本身的级别上使用它。换句话说,我可以计算它并将其加载到内存然后获取我想要的数据(dseries.compute()['x']),但理想情况下我想要这样的东西:dseries['x'].compute(),因为对于我的实际应用程序,dseries.compute()可能太大了记忆。

import numpy as np
import pandas as pd
import dask.dataframe as ddf
import random

for i in range(5):
    pdseries = pd.Series('x':random.randint(0,10),'y':random.randint(0,10),'z':random.randint(0,10))
    pdseries.to_hdf(f'testi.hdf5','data',format='table')

dseries = ddf.read_hdf('test*.hdf5','data')

print(dseries['x'])

这引起了NotImplementedError。我想我会期望它返回某种dask对象,在计算时,它返回文件中的数据。

答案

在这种情况下你应该使用loc。您可能有兴趣为dask系列提出或实际实现getitem,因为该功能已经存在。

以上是关于为什么__getitem__没有被dask系列实现?的主要内容,如果未能解决你的问题,请参考以下文章

带有“__getitem__”的类没有“get”方法

python getattribute、get、getattr、getitem等用法

TypeError:“NoneType”对象没有属性“__getitem__”

python-面向对象之item系列(__getitem__,__setitem__,__delitem__)

十.python面向对象(itme)

理解 __getitem__ 方法