【发布时间】:2021-11-21 19:02:12
【问题描述】:
寻找用于在列布尔值之间对行进行分组的 Pandas 语法。
数据表
| distance | time | new |
|---|---|---|
| 0 | 2020-10-11 1:30:15 | true |
| 5 | 2020-10-11 1:31:15 | false |
| 10 | 2020-10-11 1:32:15 | false |
| 1 | 2020-10-11 2:30:15 | true |
| 2 | 2020-10-11 2:31:15 | false |
| 30 | 2020-10-11 2:32:15 | false |
| 31 | 2020-10-11 2:33:15 | false |
| 0 | 2020-10-12 1:31:15 | true |
| 5 | 2020-10-12 1:32:15 | false |
问题
希望对属于每个活动的所有行进行分组。新活动由新列中的真实值确定。根据上面的数据应该有3组。每个组都需要从第一行以 True 开始,并在下一个 True 之前以最后一个 False 结束。
使用groupby如何实现这一点?
代码
这是使用groupby 和按日期分组的功能,但就像我上面所说的,我希望将其更改为按“新”列分组行到活动中。不过我打算在这样的 for 循环中使用。
for idx, day in df.groupby(df.timestamp.dt.date):
print(idx)
print(day)
【问题讨论】:
标签: python pandas pandas-groupby