【发布时间】:2022-01-07 17:46:52
【问题描述】:
我在 groupby 之后有一个基于 id 的数据框。
import pandas as pd
df = pd.DataFrame({'date': ['2022/01/01', '2022/01/02', '2022/01/03', '2022/01/04', '2022/01/05', '2022/01/06', '2022/01/07', '2022/01/08', '2022/01/09', '2022/01/10', '2022/01/11', '2022/01/12', '2022/01/13', '2022/01/14', '2022/01/15', '2022/01/16', '2022/01/17', '2022/01/18', '2022/01/19', '2022/01/20', '2022/01/21', '2022/01/22', '2022/01/23', '2022/01/24', '2022/01/25', '2022/01/26', '2022/01/27', '2022/01/28', '2022/01/29', '2022/01/30', '2022/01/31'],
'value': [1, 3, 5, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]})
在上述数据框中,2022/01/06 之后的值为零。所以我想确定这样的日期,在该日期之后值保持为零并删除它们。 预期的输出数据帧是
>>> df
date value
0 2022/01/01 1
1 2022/01/02 3
2 2022/01/03 5
3 2022/01/04 0
4 2022/01/05 0
5 2022/01/06 2
所以在示例中,我应该能够确定 2022/01/06 是取消日期,因为之后所有日期的值都是 0。
【问题讨论】:
-
你的问题是......?你的尝试到底在哪里失败了?
-
@Neither 想不出一种方法来以一种简洁的方式识别这样的日期并以此为基础删除,不想申请循环。