【发布时间】:2019-06-26 00:10:21
【问题描述】:
我想在数据框中重新排列名称(如下所示),但保留它们的平均分数。所以我知道我可以执行以下操作来获取每个人的值列表:
df1.groupby('Person1')['AverageScoreP1'].mean()
df1.groupby('Person2')['AverageScoreP2'].mean()
但是我怎样才能以正确的顺序将它们放入新的数据帧 (df2) 中。我使用了“转换”方法,但没有将名称和他们的平均分数作为一个实体附加。相反,它只是以相同的顺序将 df1 中的值复制到 df2 中(显示在 df2(Attempted) 中,如下所示)。我相信这有一个简单的解决方案!
df1:
Person 1 Person 2 AverageScoreP1 AverageScoreP2
Sam Ellie 2.3 10.2
James Sarah 4.5 8.8
Steven Jane 6.6 3.5
Martin Becky 7.7 2.0
df2:
我想展示的内容:
Person 1 Person 2 AverageScoreP1 AverageScoreP2
Martin Sarah 7.7 8.8
Steven Becky 6.6 2.0
Sam Ellie 2.3 10.2
James Jane 4.5 3.5
df2(已尝试):
Person 1 Person 2 AverageScoreP1 AverageScoreP2
Martin Sarah 2.3 10.2
Steven Becky 4.5 8.8
Sam Ellie 6.6 3.5
James Jane 7.7 2.0
【问题讨论】:
-
你如何重新排列它们,有什么意义,你想按AverageScoreP1排序?据我了解,您只想重新排列表格,因此分数仍然与您计算它的人相关。唯一的问题是你想怎么安排它
-
所以我制作了 df1,其平均分数与每个名称正确关联。对于“df2”,我有以替代顺序提供给我的 Person 1 和 Person 2 列。我想将人 1 和 2 的正确配对及其分数从 df1 复制到 df2。实际数据要大得多,因此想知道我可以做到这一点的快速方法
-
所以你有完整的表 df1 和 df 2 的前两列,你想完成它们,对吗?
-
是的,就是这样。