Dask Длина значений не соответствует длине ошибки индекса - PullRequest
0 голосов
/ 18 февраля 2020

Я столкнулся с очень странной ошибкой, связанной с назначением нового столбца существующему фрейму данных dask. Учитывая приведенный ниже минимальный пример,

import pandas as pd
from dask import dataframe as dd
from dask import array as da

foo = dd.from_pandas(pd.DataFrame({'number':list(range(10))}), chunksize=2)
add_me = ["N/A" for _ in range(len(foo.index))]
add_me = da.from_array(add_me, chunks='auto').compute()

Я ожидаю, что следующее будет работать нормально

foo = foo.assign(added=lambda x: add_me[x['number']]).compute()

Однако, это выдает следующую ошибку:

ValueError: Length of values does not match length of index

Когда я сначала вычисляю фрейм данных, а затем добавляю столбец, используя тот же синтаксис (только потом в нативном pandas), он прекрасно работает:

foo = foo.compute()
foo = foo.assign(added=lambda x: add_me[x['number']])
foo
>>>>>     number added
      0     0     N/A
      1     1     N/A
      2     2     N/A
      3     3     N/A
      4     4     N/A
      5     5     N/A
      6     6     N/A
      7     7     N/A
      8     8     N/A
      9     9     N/A

Я что-то здесь упустил?

Я прочитал следующий связанный пост ( Ошибка задания: длина значений не соответствует длине индекса ), но не нашел полезного совета.

...