У меня есть кадр данных Koalas, работающий в Azure кирпичах данных, скажем:
import databricks.koalas as pd
df = pd.DataFrame({'category': ['A', 'A', 'B'],
'col1': [1, 2, 3],
'col2': [4, 5, 6]},
columns=['category', 'col1', 'col2'])
Я хочу создать новый столбец (в настоящее время в функции), который оценивает столбец в зависимости от его значений (который являются конечными и известными) и заполняет новый столбец элементами из столбцов другого набора данных. (Почему ?, потому что этот второй набор данных содержит параметры для включения и был предварительно отфильтрован перед использованием для извлечения этих данных)
Я пробовал (код из функции, которая вызывает df и params)
return df.assign(col3= df.category.map({
'A': params['column1'] ,
'B' : params['column2'] ,
'C': params['column3']
#}) )
с сообщением об ошибке:
PandasNotImplementedError: The method `pd.Index.__iter__()` is not implemented. If you want to collect your data as an NumPy array, use 'to_numpy()' instead.
, что странно, поскольку у меня нет звонка на Pandas в любом месте
Также я попытался:
df = df.assign(col3 = None)
return df.col3.mask(df.category== 'A', params['column1']) \
.mask(df.category == 'B' , params['column2'])\
.mask(df.category == 'C', params['column3'])
Во втором случае возвращенный фрейм данных имеет все значения nan.
Я также уже установил для 'compute.ops_on_diff_frames' значение True