【发布时间】:2018-08-22 13:13:47
【问题描述】:
我有一个包含 2 列(Name 和 Score)的数据集,我想将列 Name 分成两组:group 1 和 group 2。然后,我将不得不计算sum(score group 1) / sum(score group 2)。我的目标是在名称和组的所有组合中找到最小的sum(score group 1) / sum(score group 2)。
df = pd.DataFrame({
'Name': list('ABCDEF'),
'Score': [600, 1000, 300, 100, -100, 3000],
}, columns=['Name', 'Score'])
df
Name Score
0 A 600
1 B 1000
2 C 300
3 D 100
4 E -100
5 F 3000
第一次交互示例:
Group Name Score
0 1 A 600
1 2 B 1000
2 2 C 300
3 2 D 100
4 2 E -100
5 2 F 3000
sum(score group 1) / sum(score group 2) = 0.1395
第二次交互示例:
Group Name Score
0 1 A 600
1 1 B 1000
2 2 C 300
3 2 D 100
4 2 E -100
5 2 F 3000
sum(score group 1) / sum(score group 2) = 0.4848
然后,计算所有组合的分数,得到最小的sum(score group 1) / sum(score group 2)
【问题讨论】:
-
最小的是 -100 /(所有其他的总和)。这是你需要的吗?
-
我很困惑,我不明白你想要什么。鉴于您已经提供的输入,您能否提供您的期望?
-
两个组应该包含多少行?我的意思是有最大或最小数字吗?
-
@gabriel 请将任何示例输出作为edit - cmets 真的不适合它...
-
每组人数相同?或者 group1 可以有一个值,而另一个组中有 5 个?
标签: python pandas combinations