争论熊猫数据框

问题描述 投票:0回答:1

我有一个如下所示的大型数据框。

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

必须保持条目的顺序。如有任何帮助,我们将不胜感激。

pandas dataframe
1个回答
0
投票

您可以使用

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
© www.soinside.com 2019 - 2024. All rights reserved.