我有一个看起来像这样的数据框,其中包含三列(10 个不同的刺激、16 个试验和一个包含相等长度列表的数据列)。我只想根据刺激获得数据列的元素平均值。因为我有 10 种不同的刺激,它应该为每个刺激产生 10 个阵列,这也是所有数据阵列在试验中的平均值。
我想过这样的事情,但它给了我一些非常奇怪的东西。
df.groupby('stimulus').apply(np.mean)
>> IndexError: tuple index out of range
构建我的数据框
trial_vec = np.tile(np.arange(16)+1, 10)
stimulus_vec = np.repeat([-2., -1.75, -1., -0.75, -0.5, 0.5, 1., 1.25, 1.75, 2.5 ], 16)
data_vec = np.random.randint(0, 16, size=160)
df = pd.DataFrame({'trial': trial_vec, 'stimulus': stimulus_vec, 'data': data_vec}).astype('object')
df["data"] = [np.random.rand(4).tolist() for i in range(160)]
df