如何基于阈值分割数据帧

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

嗨,自2天以来,我一直在努力解决这个问题,如果能在此问题上获得一些帮助,我将很高兴所以我需要基于阈值分割数据框,让我们说这个数据框:

打印(df)

  A  B  
  0  10  
  1  30  
  2  50  
  3  20  
  4  10  
  5  30

我想使用50的阈值获得最佳的数据分割:这意味着结果应该像这样:

A B0 101 30

A B

2 50

A B

3 204 105 30

pandas dataframe split threshold
1个回答
0
投票

您可以在B列的累加总和上使用pd.cut

bins = list(range(0, df.B.cumsum().max() + 1,  50))
groups = pd.cut(df.B.cumsum(), bins, labels=list(range(len(bins) - 1)))

for key, group in df.groupby(groups):
    print(group)
    print()

输出

   A   B
0  0  10
1  1  30

   A   B
2  2  50

   A   B
3  3  20
4  4  10
5  5  30
© www.soinside.com 2019 - 2024. All rights reserved.