【发布时间】:2018-04-21 00:06:10
【问题描述】:
我可以在做 pandas.DataFrame.groupby().sum() 时保留非数字列(第一个出现的值)吗?
例如,我有一个这样的 DataFrame:
df = pd.DataFrame({'A' : ['aa1', 'aa2', 'aa1', 'aa2'],'B' : ['bb1', 'bbb1', 'bb2', 'bbb2'],'C' : ['cc1', 'ccc2', 'ccc3', 'ccc4'],'D' : [1, 2, 3, 4],'E' : [1, 2, 3, 4]})
>>> df
A B C D E
0 aa1 bb1 cc1 1 1
1 aa2 bbb1 ccc2 2 2
2 aa1 bb2 ccc3 3 3
3 aa2 bbb2 ccc4 4 4
>>> df.groupby(["A"]).sum()
D E
A
aa1 4 4
aa2 6 6
以下是我想要得到的结果:
B C D E
A
aa1 bb1 cc1 4 4
aa2 bbb1 ccc2 6 6
注意B和C列的值是每个组键的第一个关联的B值和C值。
【问题讨论】:
-
您是说要按
A分组并按B in reverse排序,这有点令人困惑,您能用可用的df 解释您的预期结果吗? -
其实我想在
df.groupby(["A"]).sum()的结果中加入B这一列,结果B的值就是分组的第一个B值。 -
嗨@AaronWang,欢迎来到stackoverflow!我相信您想使用保留一词而不是保留,如果是这样,请编辑您的问题,以便将来有类似问题的其他人很容易找到。另外,正如您在 cmets 中所说,请在您的帖子中包含“您想找到每个组键的第一个关联 B 值”。谢谢!