大熊猫群数

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

我有这样的数据帧:

df = pd.DataFrame({'dir':[0,0,0,1,1,0,1], 'price': [100, 102, 110, 120, 125, 200, 210]})

   dir  price
0    0    100
1    0    102
2    0    110
3    1    120
4    1    125
5    0    200
6    1    210

我希望将它们分组为0和1之后。我期望的结果如下:

   dir  price
0    0    100
1    0    102
2    0    110
3    1    120
4    1    125

   dir  price
5    0    200
6    1    210
python pandas
1个回答
2
投票

使用diffcumsum如果它是10你将开始算作一个新组,所以diff应该相等(eq)到-1

for x , y in df.groupby(df.dir.diff().eq(-1).cumsum()): 
    print(y)



   dir  price
0    0    100
1    0    102
2    0    110
3    1    120
4    1    125
   dir  price
5    0    200
6    1    210
d={x: y  for x , y in df.groupby(df.dir.diff().eq(-1).cumsum())}
© www.soinside.com 2019 - 2024. All rights reserved.