嗨,自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
您可以在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