python - Pandas ,选择一组的第一个观察并排序

标签 python pandas

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/

相关文章:

python - 为什么 Python 的 != 运算符认为参数同时相等和不相等?

python - 从 model.ckpt.meta 中提取图形 def

python - 名称未定义,功能定义错误?

python - 将 Pandas 数据框切片到包含值的所有列的第一个实例

python - Pandas 应用功能并更新数据框的副本

python - Django api 返回模型 ID 而不是模型的标题

python - 从 JSON 动态创建 Django > MySQL 的查询字符串

python - 使用 .loc 的 Series 之间的值分配,具有不同索引的相同大小

python - 计算向量python的旋转角度

python - 在两个 Numpy 数组之间创建 Pandas Dataframe,然后绘制散点图