Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.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,它有日期,看起来像: DATE_OF_ENTRY 0 24/02/2019 1 01/08/2003 2 05/11/2002 3 03/02/2003 4 04/08/2003 5 05/02/2003 6 30/06/2003 7 01/03/2004 8 17/09/2001 我还有一个名为referencePeriodEndDate的参考日期变量,它当前等于'31/03/2019' 如果列中的日期大于参考日期

我有一个数据框
df
,它有日期,看起来像:

  DATE_OF_ENTRY
0    24/02/2019
1    01/08/2003
2    05/11/2002
3    03/02/2003
4    04/08/2003
5    05/02/2003
6    30/06/2003
7    01/03/2004
8    17/09/2001
我还有一个名为
referencePeriodEndDate
的参考日期变量,它当前等于
'31/03/2019'

如果列中的日期大于参考日期,我尝试将“日期”输入列中的任何日期更改为“未知”。在上面的例子中,我将返回:

  DATE_OF_ENTRY
0     NOT KNOWN
1    01/08/2003
2    05/11/2002
3    03/02/2003
4    04/08/2003
5    05/02/2003
6    30/06/2003
7    01/03/2004
8    17/09/2001
dataframe列和引用数据的类型如下:

referencePeriodEndDate =  type <class 'str'>
DATE_OF_ENTRY =  type object

没有成功

使用
pd.to\u datetime()

referencePeriodEndDate=pd.to_datetime('2019年3月31日')
df['DATE\u OF_ENTRY']=pd.to\u datetime(df['DATE\u OF_ENTRY'])
df['DATE\u OF_ENTRY']=df['DATE\u OF_ENTRY']。其中(
df[“录入日期”]
referencePeriodEndDate =  parser.parse(referencePeriodEndDate)
referencePeriodEndDate =  referencePeriodEndDate.strftime('%d/%m/%Y')

df["DATE_OF_ENTRY"].loc[
    df["DATE_OF_ENTRY"] > referencePeriodEndDate, 
    'DATE_OF_ENTRY'
] = 'NOT KNOWN'
df["DATE_OF_ENTRY"] = np.where(
    df["DATE_OF_ENTRY"] > referencePeriodEndDate,
    "NOT KNOWN", df["DATE_OF_ENTRY"]
) 
referencePeriodEndDate = pd.to_datetime('31/03/2019')
df['DATE_OF_ENTRY'] = pd.to_datetime(df['DATE_OF_ENTRY'])

df['DATE_OF_ENTRY'] = df['DATE_OF_ENTRY'].where(
    df['DATE_OF_ENTRY'] <= referencePeriodEndDate, 'NOT KNOWN'
)