我具有以下结构的数据框:
Id. Value.
1. 10
2. 12
3. 14
4. 16
5. 30
6. 32
7. 35
8. 36
9. 60
10. 61
11. 63
12. 67
13. 70
我想使用条件语句将其分为若干组,该语句比较数据框中的后续行,什么是最好的方法?
答案 0 :(得分:1)
IIUC,您可以尝试这样做:
s = pd.Series([10,12,14,16,30,32,35,36,60,61,63,67,70])
s.groupby((s.diff() >= 10).cumsum()).apply(list)
输出:
0 [10, 12, 14, 16]
1 [30, 32, 35, 36]
2 [60, 61, 63, 67, 70]
dtype: object
对于数据框:
df = pd.DataFrame({'id':np.arange(1,14),
'Value':[10,12,14,16,30,32,35,36,60,61,63,67,70]})
df.groupby(df['Value'].diff().ge(10).cumsum())['Value'].apply(list).tolist()
输出:
[[10, 12, 14, 16], [30, 32, 35, 36], [60, 61, 63, 67, 70]]