如何解决按特定顺序移动pandas数据框中的行
我有一个熊猫数据框,看起来像这样:
df = pd.DataFrame({
'job': ['football','football','basketball','hokey','hokey'],'team': [4.0,5.0,9.0,2.0,3.0,6.0,1.0,7.0,8.0,4.0,8.0],'cluster': [0,1,1]
})
每个cluster
包含9个团队。每个群组有3支球队,每种运动类型为football
,basketball
和hokey
。我想对每个集群应用移位功能,以使团队的次序以非常特定的方式发生(我尝试用颜色突出显示):
如何对更大的数据框进行这种转换(以上面显示的方式移动行)?
解决方法
让我们根据列cumcount
和cluster
创建job
+ sort_values
,然后使用cluster
对{{ 1}}和这个counter
:
df['j'] = df.groupby(['cluster','job']).cumcount()
df = df.sort_values(['cluster','j'],ignore_index=True).drop('j',axis=1)
job team cluster
0 football 4.0 0
1 basketball 2.0 0
2 hokey 1.0 0
3 football 5.0 0
4 basketball 3.0 0
5 hokey 7.0 0
6 football 9.0 0
7 basketball 6.0 0
8 hokey 8.0 0
9 football 4.0 1
10 basketball 2.0 1
11 hokey 1.0 1
12 football 5.0 1
13 basketball 3.0 1
14 hokey 7.0 1
15 football 9.0 1
16 basketball 6.0 1
17 hokey 8.0 1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。