在带参数的数据框中使用Apply返回错误

时间:2019-01-19 19:15:55

标签: python pandas

我有以下代码

def mean_vectorizer(words, dimention, diction):
  return np.array([np.mean([diction[w] for w in words if w in diction] or [np.zeros(dimention)], axis=0)])

data['vector'] = data.apply(lambda x: mean_vectorizer(x['words'], 100, diction), axis=1)

数据框中的列words包含单词列表。 diction是一个字典,其中有一个单词作为关键字,而一个数组则具有固定大小的值。我想做的是创建一个新列,该列将解析每行中的列表,从字典中获取每个单词的数组,并使用其余平均值计算一个单独的数组。

运行上面的代码将返回此错误:

Exception: Data must be 1-dimensional         

但是,如果我使用下面的代码在一行中运行代码,它不会抱怨

words = data.iloc[0]['words']
np.array([np.mean([diction[w] for w in words if w in diction] or [np.zeros(dimention)], axis=0)])

0 个答案:

没有答案