gpt4 book ai didi

python - Pandas groupby 得到最小的字符串

转载 作者:行者123 更新时间:2023-12-04 02:37:03 24 4
gpt4 key购买 nike

我有以下数据框:

df = pd.DataFrame({'id': 3*['a']+4*['b'], 'name':['al', 'qwer', 'l', 'ewdbd', 'op', 'qsde', 'knmkln']})
id    name
a al
a qwer
a l
b ewdbd
b op
b qsde
b knmkln

我想分组 id 并获取名称中最短的字符串,如果有多个最小长度的字符串可以是任何字符串,则最终数据帧将是:
id    name
a l
b op

如何做到这一点?

最佳答案

使用 assigndrop_duplicates ,在大多数情况下,这应该比 groupby 快:

(df.assign(length=df['name'].str.len())
.sort_values('length')
.drop_duplicates('id')
.drop(columns='length')
)

或者没有 drop操作相对较慢,如 Ben.T 在评论中指出:
df.loc[df['name'].str.len().sort_values().index].drop_duplicates(subset='id')

id name
2 a l
4 b op

关于python - Pandas groupby 得到最小的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61236872/

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