pandas 新手,正在努力变得更好。我想对“id”列进行分组,然后对“col2”进行排序,然后对“col3”进行排序,然后进行顶部观察。 提前致谢
In[5]:df
Out[5]:
id col2 col3
0 1 2 5
1 1 2 2
2 2 8 3
3 2 3 6
4 2 3 1
5 1 3 7
6 2 5 6
7 1 8 6
期望:
In[6]:df_selection
Out[6]:
id col2 col3
0 1 2 2
1 2 3 1
最佳答案
执行此操作的一个非常简短的方法是按这些列进行排序、分组并获取每组的第一个:
>>> df.sort_values(by=['col2', 'col3']).groupby('id').first()
col2 col3
id
1 2 2
2 3 1
要获得与您的问题完全相同的输出,只需重置索引即可:
>>> df.sort_values(by=['col2', 'col3']).groupby('id').first().reset_index()
id col2 col3
0 1 2 2
1 2 3 1
关于python - Pandas ,选择一组的第一个观察并排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36066694/