根据列对熊猫数据框数据进行排列/排序

用户名

我是熊猫新手。我需要根据组内的循环顺序以降序对数据值进行排序和分组。我有以下数据框:

Col1 Col2  
A     5030 
B     4250
c     3340
D     2100
A     5044
B     4790
C     3482
C     3233
A      5099
B      4820
D      2345
D      2784
A      5999

我需要对数据帧进行排序,以使所有值Col2Col1从高到低的顺序循环排列。例如,将首先对(A,B,C,D)的所有最高值进行排序,然后再跟随(A,B,C,D)的第二高值,然后是(A,B,3 B,C,D)组需要关注,依此类推。

排序后,最终的数据帧应如下所示:

Col1     Col2

A         5999
B         4820
C         3482
D         2784
A         5099
B         4790
C         3340
D         2345
A         5044
B         4250
C         3233
D         2100
A         5030

Col1除(A,B,C,D)外,将没有其他任何值。但是在某些情况下,中可能只有2个或3个不同的值Col1因此,需要相应地制定逻辑。

我可以按照以下步骤解决问题:

  1. 根据中的不同值创建单独的数据框Col1
  2. 根据中的值,以降序对每个子数据帧进行排序和索引Col2
  3. 然后循环遍历子数据帧的索引,并将数据附加到每个子数据帧的新数据帧中。

此过程似乎不是最佳方法。因此,我正在寻找有关更简单的本机解决方案的建议。

BEN_YO

IIUC使用创建新密钥 cumcount

df['Key']=df.sort_values('Col2',ascending=False).groupby('Col1').cumcount()
df=df.sort_values(['Key','Col1']).drop('Key',1)
df
Out[453]: 
   Col1  Col2
12    A  5999
9     B  4820
6     C  3482
11    D  2784
8     A  5099
5     B  4790
2     C  3340
10    D  2345
4     A  5044
1     B  4250
7     C  3233
3     D  2100
0     A  5030

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据分类列的值对熊猫数据框进行排序

根据列表对熊猫数据框进行排序

根据列中的最大值对列进行排序 - R 数据框排列

对熊猫数据框的列进行排序

根据特定顺序对熊猫数据框进行排序

如何根据条件对熊猫数据框的行值进行排序?

熊猫根据外部序列对数据框进行排序

根据特定值的顺序对熊猫数据框进行排序

根据特定索引对多索引熊猫数据框进行排序

如何根据行对熊猫数据框进行排序?

根据子字符串对熊猫数据框列进行排序

根据熊猫中数据框的日期列对词典列表进行排序

根据字符串值列对熊猫数据框行进行排序

如何根据熊猫中另一个数据框中的列对数据框进行排序?

根据列均值对数据框的列进行重新排序

如何对格式错误的熊猫数据框列进行排序?

对熊猫中的数据框列进行自然排序

如何仅对熊猫数据框中的选定列进行排序

堆叠熊猫数据框时避免对列进行排序

熊猫列在追加到新数据框后进行排序

在熊猫数据框中对行进行排序并获取列ID

如何根据值对熊猫数据框的列进行分类?

如何根据两列对熊猫数据框进行分组?

在GroupBy之后根据特定列对数据框进行排序

根据列值对pyspark数据框进行排序

根据列中值的前缀对数据框进行排序

根据列条件对数据框进行排序

根据多个列和条件对数据框进行排序

熊猫数据框,根据其整数表示对字符串数据进行分组和排序