Bru*_*llo 5 python pandas pandas-groupby
我有以下数据框:
df = pd.DataFrame({'id': 3*['a']+4*['b'], 'name':['al', 'qwer', 'l', 'ewdbd', 'op', 'qsde', 'knmkln']})
Run Code Online (Sandbox Code Playgroud)
id name
a al
a qwer
a l
b ewdbd
b op
b qsde
b knmkln
Run Code Online (Sandbox Code Playgroud)
我想按 id 进行分组并获取名称中最短的字符串,如果有多个具有最小长度的字符串,则它可以是任何字符串,最终的数据帧将是:
id name
a l
b op
Run Code Online (Sandbox Code Playgroud)
如何才能实现这一目标?
对于最短的字符串,您需要首先找到长度:
df.loc[df['name'].str.len().groupby(df['id']).idxmin()]
Run Code Online (Sandbox Code Playgroud)
输出:
id name
2 a l
4 b op
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1339 次 |
| 最近记录: |