gpt4 book ai didi

python - Pandas groupby 在一列上,在第二列上聚合,保留第三列

转载 作者:太空宇宙 更新时间:2023-11-04 02:57:41 25 4
gpt4 key购买 nike

我有以下数据框:

df = pd.DataFrame({'key1': (1,1,1,2), 'key2': (1,2,3,1), 'data1': ("test","test2","t","test")})

我想按 key1 分组并获得 data1 的最小值。此外,我想保留 key2 的相应值而不对其进行分组。

df.groupby(['key1'], as_index=False)['data1'].min()

让我:

key1 data1  
1 t
2 test

但我需要:

key1 key2 data1  
1 3 t
2 1 test

有什么想法吗?

最佳答案

您可以使用 groupby.apply 并检索所有 x['data1']==x['data1'].min() 等于的实例True 同时保留未分组的列,如下所示:

df.groupby('key1', group_keys=False).apply(lambda x: x[x['data1'].eq(x['data1'].min())])

enter image description here


要知道哪些元素返回 True,我们稍后从中对减少的 DF 进行子集化:

df.groupby('key1').apply(lambda x: x['data1'].eq(x['data1'].min()))

key1
1 0 False
1 False
2 True
2 3 True
Name: data1, dtype: bool

关于python - Pandas groupby 在一列上,在第二列上聚合,保留第三列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41893640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com