我有一个“Perf”数据帧,其中包含了一段时间内的人员绩效数据。 索引是一个timstamp,列是人名。 共有100人(列),每个人属于10个小组中的一个,但是小组分配是动态的,每天每个人都可以被分配到不同的组。 因此,第二个“Group”数据帧的形状与“Perf”相同,其中包含每个时间戳和个人的组号(0-9)。在
问题是我如何才能优雅地为每个人做一个关于小组作业的平均减法? 一种非常慢的方法是:
for g in range(10):
Perf[Group==g] -= Perf[Group==g].mean(1)
但这真的很慢,我相信有一种方法可以在熊猫身上一次性完成。在
下面是一个具体的例子:
分数代表每人10天(0-9)的得分(0-4):
在[8]:perf=数据帧(np.随机.randn(10,5)
在[9]:性能
出[9]:
^{pr2}$然后我有一些分组数据帧,每天显示5个人中每个人的组关联,分组每天都在变化。在
In [20]: grouping
Out[20]:
0 1 2 3 4
0 3 1 2 1 2
1 3 1 2 2 1
2 2 2 3 1 1
3 1 2 2 3 1
4 3 2 1 2 1
5 2 1 1 2 3
6 1 2 1 2 3
7 2 2 1 1 3
8 2 1 2 1 3
9 1 3 2 1 2
我想修改Perf,这样我就可以每天减去每个人组的平均分。在
例如,对于第0天,它将是0.0-0.613356 1.206597 0.613356-1.206597
我想在一行没有循环。Groupby似乎是要使用的函数,但我无法有效地利用它的输出对原始矩阵执行均值减法运算。在
目前没有回答
相关问题 更多 >
编程相关推荐