В следующем коде:
import pandas as pd
import numpy as np
import random
sz = 50
df = pd.DataFrame({'Group': pd.Series(random.choice(['A', 'B']) for _ in range(sz)),
'Key': pd.Series(np.random.randint(2, high=5, size=sz))})
dictforA = {2: 0.1, 3: 0.8, 4: 0.2}
dictforB = {3: 0.9}
... хотите назначить новый столбец с именем Value
, который основан на соответствующем словаре. Недостающие значения будут NaN.
Код: df.assign(Value=df.groupby('Group').apply(lambda x: np.where(x.index == 'A', dictforA[x.Key], dictforB[x.Key])))
дает
TypeError: 'Series' objects are mutable, thus they cannot be hashed
Куда я иду не так?