按组中的位置对数据框进行排序,然后按该组

海盗

考虑数据框 df

df = pd.DataFrame(dict(
        A=list('aaaaabbbbccc'),
        B=range(12)
    ))

print(df)

    A   B
0   a   0
1   a   1
2   a   2
3   a   3
4   a   4
5   b   5
6   b   6
7   b   7
8   b   8
9   c   9
10  c  10
11  c  11

我想对数据框进行排序,例如,如果我按列分组,'A'则从每个组中拉出第一个位置,然后循环回去,并从每个组中获得第二个位置(如果还有剩余的话)。等等等等。

我希望结果看起来像这样

    A   B
0   a   0
5   b   5
9   c   9
1   a   1
6   b   6
10  c  10
2   a   2
7   b   7
11  c  11
3   a   3
8   b   8
4   a   4
耶斯列尔

您可以使用cumcount在计数值groups,再sort_valuesreindexSeries cum

cum = df.groupby('A')['B'].cumcount().sort_values()
print (cum)
0     0
5     0
9     0
1     1
6     1
10    1
2     2
7     2
11    2
3     3
8     3
4     4
dtype: int64

print (df.reindex(cum.index))
    A   B
0   a   0
5   b   5
9   c   9
1   a   1
6   b   6
10  c  10
2   a   2
7   b   7
11  c  11
3   a   3
8   b   8
4   a   4

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

按名称然后按日期对数据框进行排序,同时保持名称排序

按索引然后按列对数据框进行排序

按R中的多个列(一组较大的列)对数据框进行排序

按字母顺序对数据表进行字母排序,然后按R中的数字值排序

按索引对大熊猫数据框进行排序,然后按字母顺序排序

按不同方向的组对数据框的列进行排序

C# LINQ 按属性组集合,然后按列表定义的显式顺序对每个组进行排序

在Java中按长度先对数组排序,然后按字母顺序对数组进行排序

在数据框中按组对行进行排序,排序或排序

如何进行汇总,然后按组乘以结果?

组将javascript数组中的值重复在一起,然后按其值名称升序对这些组进行排序

按正则表达式过滤powershell中的字符串列表,然后按捕获组之一进行分组和排序

c#Linq查询按组然后按子组对项目进行分组

具有datetimeindex的Pandas数据框,按月然后按年对记录进行排序

熊猫分组并计数,然后按分组大小对整个数据框进行升序排序?

按索引对数据框进行排序

按列对数据框进行排序

按数字对数据框进行排序

按列对数据框中的某些行进行排序

按R中的ALL列对数据框进行排序

如何按R中的列名对数据框进行排序?

从帖子中检索元数据,然后按Django中的所述元数据对帖子进行排序

按组对熊猫数据框排序

按多索引数据框中每个组的值排序

按数字然后按字母对数组列表进行排序

按委员会,然后按用户角色对数组进行排序

如何按字母顺序对 csv 数据进行排序,然后按列按数字排序?

AngularJS-ngOptions:如何按组名然后按标签排序

C#-按州然后按城市对数据排序的最简单方法