【发布时间】:2018-01-25 08:38:01
【问题描述】:
我有一个电影数据框,其中包含电影名称、它们各自的流派和矢量表示(numpy 数组)。
ID Year Title Genre Word Vector
1 2003.0 Dinosaur Planet Documentary [-0.55423898, -0.72544044, 0.33189204, -0.1720...
2 2004.0 Isle of Man TT 2004 Review Sports & Fitness [-0.373265237, -1.07549703, -0.469254494, -0.4...
3 1997.0 Character Foreign [-1.57682264, -0.91265768, 2.43038678, -0.2114...
4 1994.0 Paula Abdul's Get Up & Dance Sports & Fitness [0.3096168, -0.57186663, 0.39008939, 0.2868615...
5 2004.0 The Rise and Fall of ECW Sports & Fitness [0.17175879, -2.38005066, -0.45771399, 1.32608...
我想按类型分组并获得每个类型的平均向量表示(该类型中每个电影向量的分量平均)。
我第一次尝试:
movie_df.groupby(['Genre']).mean()
但是内置的 mean 函数不能取 numpy 数组的均值。
我尝试创建自己的函数来执行此操作,然后将其应用于每个组,但我不确定这是否正确使用 apply:
def vector_average(group):
series_to_array = np.array(group.tolist())
return np.mean(series_to_array, axis = 0)
movie_df.groupby(['Genre']).apply(vector_average)
任何指针将不胜感激!
【问题讨论】:
-
您能打印出
df.head(5)并粘贴到这里吗? -
是的,但在问题中。
-
我不熟悉提供数据框样本的最佳方式 - 这里的建议也将不胜感激!
-
好的。您的
Word Vector是一列 numpy 数组或列表? -
它们是 numpy 数组
标签: python arrays pandas numpy mean