我有一个这种形式的数据框:
value1 value2 value3 value4 random string column group
index1 10 2 3 4 stuff group 2
index2 5 4 3 2 other stuff group 1
index3 6 7 8 9 other stuff group 1
index4 1 2 2 4 yet other stuff group 2
index5 6 1 8 11 other stuff group 1
可以使用以下代码生成此测试示例:
df = pd.DataFrame([[10, 2, 3, 4, 'stuff', 'group 2'], [5, 4, 3, 2, 'other stuff', 'group 1'], [6, 7, 8, 9, 'other stuff', 'group 1'], [1, 2, 2, 4, 'yet other stuff', 'group 2'], [6, 1, 8, 11, 'other stuff', 'group 1']], columns = ['value1', 'value2', 'value3', 'value4', 'random string column', 'group'], index=['index1', 'index2', 'index3', 'index4', 'index5'])
我想根据此规范创建一个名为“组识别列”的新列:
按组列分组
取每个值列的总和
获取每组总和最大的值列的列名
在此示例中,预期输出为:
value1 value2 value3 value4 random string column group Group Identifying Column
index1 10 2 3 4 stuff group 2 value1
index2 5 4 3 2 other stuff group 1 value4
index3 6 7 8 9 other stuff group 1 value4
index4 1 2 2 4 yet other stuff group 2 value1
index5 6 1 8 11 other stuff group 1 value4
我已经尝试了几次 groupby / apply / transform 等,但我不能完全让它正确。
繁星点点滴滴
江户川乱折腾
相关分类