首页 > 解决方案 > 在 Azure Python 中的两个日期列之间查找日期

问题描述

我试图在一列中查找位于其他两列日期之间的所有日期,但我仍然从限制之外获得结果。我怀疑这可能是 strftime 的问题,我应该改用 strptime,但我似乎无法让它工作。

我拥有的数据是这样的:

Prod_Date                 Date                      Lead_Date
08/02/1985 12:00:00 AM    08/02/1970 12:00:00 AM    08/02/1988 12:00:00 AM
08/02/1986 12:00:00 AM    08/02/1971 12:00:00 AM    08/02/2018 12:00:00 AM
08/02/1987 12:00:00 AM    08/02/1972 12:00:00 AM    08/02/1986 12:00:00 AM
08/02/1988 12:00:00 AM    08/02/1973 12:00:00 AM    08/02/2018 12:00:00 AM

我想将数据框限制为位于 Date 和 Lead_Date 列之间的 Prod_Date 值。我的代码没有任何错误,但我会得到很多错误值,它们要么在 Date 值之前,要么在 Lead_Date 值之后。

# imports up here can be used to 
import pandas as pd
import datetime

# The entry point function can contain up to two input arguments:
#   Param<dataframe1>: a pandas.DataFrame
#   Param<dataframe2>: a pandas.DataFrame
def azureml_main(dataframe1 = None, dataframe2 = None):

    # Convert strings to datetime
    dataframe1['Date'] = dataframe1.Date.apply(
        lambda x: pd.to_datetime(x).strftime('%d/%m/%Y %I:%M:%S %p'))

    dataframe1['Prod_Date'] = dataframe1.Prod_Date.apply(
        lambda x: pd.to_datetime(x).strftime('%d/%m/%Y %I:%M:%S %p'))
 
    dataframe1['Lead_Date'] = dataframe1.Lead_Date.apply(
        lambda x: pd.to_datetime(x).strftime('%d/%m/%Y %I:%M:%S %p'))
        
    # Keeping only the rows for production that are contained between the date and lead_date:
    dataframe1 = dataframe1[(dataframe1['Date'] < dataframe1['Prod_Date']) & (dataframe1['Prod_Date'] < dataframe1['Lead_Date'])]

标签: pythondatetimeazure-machine-learning-studiostrptimestrftime

解决方案


推荐阅读