Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用条件删除列中每个值的行?_Python_Pandas - Fatal编程技术网

Python 如何使用条件删除列中每个值的行?

Python 如何使用条件删除列中每个值的行?,python,pandas,Python,Pandas,我有以下数据帧: df = pd.DataFrame({'No': [0,0,0,1,1,2,2], 'date':['2020-01-15','2019-12-16','2021-03-01', '2018-05-19', '2016-04-08', '2020-01-02', '2020-03-07']}) df.date =pd.to_datetime(df.date) No date 0 0 2018-01-15 1 0

我有以下数据帧:

df = pd.DataFrame({'No':  [0,0,0,1,1,2,2], 
                   'date':['2020-01-15','2019-12-16','2021-03-01', '2018-05-19', '2016-04-08', '2020-01-02', '2020-03-07']})
df.date =pd.to_datetime(df.date)


    No  date
0   0   2018-01-15
1   0   2019-12-16
2   0   2021-03-01
3   1   2018-05-19
4   1   2016-04-08
5   2   2020-01-02
6   2   2020-03-07
如果
No
列中每个唯一数字的
date
值都早于
2020-01-01
,我想删除行,即我想删除索引为3和4的行。

是否可以在没有for循环的情况下执行此操作?

使用groupby和transform:

>>> df[df.groupby('No')['date'].transform('max')>='2020-01-01']
   No       date
0   0 2020-01-15
1   0 2019-12-16
2   0 2021-03-01
5   2 2020-01-02
6   2 2020-03-07

这是一个简短且非常好的解决方案。非常感谢。