我有一个如下所示的大型数据框。
PERIOD Value
1 30
1 40
1 50
2 60
2 75
2 80
3 90
3 100
3 200
我想要以下格式的 DataFrame 而不使用 for 循环。
PERIOD Value
1 30
2 60
3 90
1 40
2 75
3 100
1 50
2 80
3 200
必须保持条目的顺序。如有任何帮助,我们将不胜感激。
groupby.cumcount
对值进行排序,然后使用索引重新排序:
order = df.groupby('PERIOD').cumcount().sort_values(kind='stable').index
out = df.loc[order]
输出:
PERIOD Value
0 1 30
3 2 60
6 3 90
1 1 40
4 2 75
7 3 100
2 1 50
5 2 80
8 3 200