2
我遇到了一个熊猫数据框的问题。我有一个有三列的数据框,前两个是标识符(str),第三个是数字。Groupby没有丢失列
我想分组,使我得到的第一列第三作为最大,第二列索引对应第三。
这不是很清楚,所以我们来举个例子吧。我的数据框的样子:
id1 id2 amount
0 first_person first_category 18
1 first_person second_category 37
2 second_person first_category 229
3 second_person third_category 23
,如果你需要它的代码:
df = pd.DataFrame([['first_person','first_category',18],['first_person','second_category',37],['second_person','first_category',229],['second_person','third_category',23]],columns = ['id1','id2','amount'])
而且我想获得:
id1 id2 amount
0 first_person second_category 37
1 second_person third_category 229
我已经尝试了GROUPBY方法,但它让我失去第二列:
result = df.groupby(['id1'],as_index=False).agg({'amount':np.max})
'df.groupby([“ID1”],as_index =假).max()' - 是你想要的吗? – MaxU
事情是,它不是每次最大的数量对应(*编辑我的帖子来说清楚) – ysearka
@MaxU认为它也是第一次,但它返回最大值的id2和'金额',而不是最大'金额'的行。 –