У меня возникли проблемы с выполнением чего-либо полезного с объектом серии 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'test{i}.hdf5','data',format='table')
dseries = ddf.read_hdf('test*.hdf5','data')
print(dseries['x'])
Это вызывает NotImplementedError
. Я полагаю, я ожидал бы, что он вернет какой-то объект dask, который при вычислении вернет данные из файлов.
@mdurant Действительно так. Спасибо.
Вы должны использовать loc
в этом случае.
Возможно, вам будет интересно предложить или даже реализовать getitem для серии dask, поскольку функциональность уже существует.
Спасибо @mdurant. Как я могу предложить это?
Поднимите вопрос в github.com/dask/dask/issues или сделайте свой собственный запрос на включение (разветвите репозиторий, запустите новую ветку, нажмите, а затем сделайте PR с помощью интерфейса github), для чего потребуются тесты.
loc
работает?