gpt4 book ai didi

python - 在 Pandas 数据框和平均数组中按列分组

转载 作者:太空狗 更新时间:2023-10-30 01:05:18 27 4
gpt4 key购买 nike

我有一个电影数据框,其中包含电影名称、它们各自的类型和矢量表示(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 数组的平均值。

我尝试创建自己的函数来执行此操作,然后将其应用于每个组,但我不确定是否正确使用了应用:

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)

任何指点将不胜感激!

最佳答案

如果我理解正确,要获得组件方面的平均值,您可以简单地将 np.mean 显式应用于 'Word Vector' SeriesGroupBy。

df.groupby('Genre')['Word Vector'].apply(np.mean)

演示

>>> df = pd.DataFrame({'Title': list('ABCDEFGHIJ'), 
'Genre': list('ABCBBDCDED'),
'Word Vector': [np.random.randint(0, 10, 10)
for _ in range(len('ABCDEFGHIJ'))]})

>>> df

Genre Title Word Vector
0 A A [3, 6, 8, 0, 4, 8, 1, 4, 0, 1]
1 B B [5, 4, 4, 4, 8, 7, 4, 3, 7, 2]
2 C C [1, 7, 6, 7, 3, 3, 8, 1, 8, 1]
3 B D [0, 4, 6, 7, 1, 5, 5, 0, 6, 7]
4 B E [8, 2, 1, 4, 1, 2, 0, 4, 9, 1]
5 D F [7, 9, 7, 8, 8, 7, 2, 9, 1, 3]
6 C G [0, 7, 1, 9, 6, 2, 1, 0, 3, 7]
7 D H [4, 7, 9, 4, 1, 5, 0, 3, 0, 6]
8 E I [5, 1, 5, 1, 8, 1, 1, 4, 5, 6]
9 D J [7, 9, 0, 1, 8, 3, 8, 8, 1, 0]

>>> df.groupby('Genre')['Word Vector'].apply(np.mean)

Genre
A [3.0, 6.0, 8.0, 0.0, 4.0, 8.0, 1.0, 4.0, 0.0, ...
B [4.33333333333, 3.33333333333, 3.66666666667, ...
C [0.5, 7.0, 3.5, 8.0, 4.5, 2.5, 4.5, 0.5, 5.5, ...
D [6.0, 8.33333333333, 5.33333333333, 4.33333333...
E [5.0, 1.0, 5.0, 1.0, 8.0, 1.0, 1.0, 4.0, 5.0, ...
Name: Word Vector, dtype: object

关于python - 在 Pandas 数据框和平均数组中按列分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45726485/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com