Python 熊猫,选择组的第一个观察并排序
对熊猫来说是新的,并且试图变得更好。我想按“id”列对_进行分组,然后按“col2”和“col3”对_进行排序,然后进行顶部观察。 提前谢谢Python 熊猫,选择组的第一个观察并排序,python,pandas,Python,Pandas,对熊猫来说是新的,并且试图变得更好。我想按“id”列对_进行分组,然后按“col2”和“col3”对_进行排序,然后进行顶部观察。 提前谢谢 In[5]:df Out[5]: id col2 col3 0 1 2 5 1 1 2 2 2 2 8
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
谢谢你,这很有效!这只是一个好奇的问题,我如何通过升序/降序传递参数进行排序?@nonegiven72通过:-)它需要一个布尔值或布尔值列表。