根据键值删除日期早于所需日期点的行

use*_*043 9 python datetime dataframe python-3.x pandas

我有一个 pd.dataframe ,如下所示:

key_value     date
value_01   2017-01-13
value_01   2018-02-17
value_01   2018-04-02
value_01   2018-05-13
value_01   2018-05-16  
value_02   2017-01-18
value_02   2018-03-13
value_02   2018-04-01
value_02   2018-05-16  
value_02   2018-05-22  
value_03   2018-01-13
value_03   2018-04-14
Run Code Online (Sandbox Code Playgroud)

所以现在基于key_value,

我想删除之前具有日期列值的所有行2018-04-01

我想要这样的最终输出:

 key_value     date
value_01   2018-04-02
value_01   2018-05-13
value_01   2018-05-16  
value_02   2018-04-01
value_02   2018-05-16  
value_02   2018-05-22  
value_03   2018-04-14
Run Code Online (Sandbox Code Playgroud)

jpp*_*jpp 20

您可以使用布尔索引过滤数据框。这里没有分组操作。请记住将您的系列转换为datetime第一个。

df['date'] = pd.to_datetime(df['date'])

res = df[~(df['date'] < '2018-04-01')]

print(res)

   key_value       date
2   value_01 2018-04-02
3   value_01 2018-05-13
4   value_01 2018-05-16
7   value_02 2018-04-01
8   value_02 2018-05-16
9   value_02 2018-05-22
11  value_03 2018-04-14
Run Code Online (Sandbox Code Playgroud)