我有一个数据帧输出,如下所示,总是有数量可变的数字列,在这里表示为t1-t4.
hash name group trial t1 t2 t3 t4
1AomKHNL56l EP1 G01 clump 1 4 5 9
2oKA7J1B3GL EP2 G02 green 2 10 0 24
zsfAu5Q6I60 EP1 G01 clump 4 3 1 3
v68fGHY8zx1 EP2 G02 green 1 5 9 22
我想做的是将数据框分组到"group"类别中,并对我知道可以使用的所有数字列求和
df.groupby(["group"]).sum()
这会删除我所有的非数字列,我想要一些动态的东西.对于"hash column",我想要一些类似以下内容的输出:
df.groupy(["group"]).agg("hash":list)
对于其他非数字列,我只想保持原样,因为它们在唯一的组ID中都是相同的.所以最终的结果是这样的:
hash name group trial t1 t2 t3 t4
[1AomKHNL56l,zsfAu5Q6I60] EP1 G01 clump 5 7 6 12
[2oKA7J1B3GL,v68fGHY8zx1] EP2 G02 green 3 15 9 46
现在我唯一能想到的方法是,分别 for each 唯一的列大小写执行agg和sum函数,然后在末尾合并数据帧,或者在agg函数中键入每个列id.我想知道是否有人知道在groupby函数中本机实现这一点的方法,而不需要所有额外的数据帧合并步骤,也不需要列出每个列id以及要做什么.也许是某种lambda声明?
哈希、名称、组和试验的列ID始终相同,但数字列的名称始终不同,具体取决于所参考的样本组.