import time; import numpy as np; import utils; # 获取最近几个月查询次数 def getLastMonthQueryTimes(df, month, queryReason,reportTime): # 当前日期 # last1MonthDateStr = time.strftime("%Y-%m-%d"); # 报告日期 last1MonthDateStr = reportTime;#queryInfo["reportTime"].replace(".", "-") # 最近一个月 lastMonthDate = np.datetime64(last1MonthDateStr, "D") - np.timedelta64(30 * month, 'D') lastMonthQueryTimesDf = df[df[1] >= str(lastMonthDate)] if queryReason != None and queryReason != "": lastMonthQueryTimesDf = lastMonthQueryTimesDf[lastMonthQueryTimesDf[3] == queryReason] # 第三列 return lastMonthQueryTimesDf.shape[0]; def getSelfLastMonthQueryTimes(df,month,reportTime): # 当前日期 # last1MonthDateStr = time.strftime("%Y-%m-%d"); # 报告日期 last1MonthDateStr = reportTime;#queryInfo["reportTime"].replace(".", "-") # 最近一个月 lastMonthDate = np.datetime64(last1MonthDateStr, "D") - np.timedelta64(30 * month, 'D') lastMonthQueryTimesDf = df[df[1] >= str(lastMonthDate)] rules = r'.*?' + '本人' + '.*' lastMonthQueryTimesDf = lastMonthQueryTimesDf[lastMonthQueryTimesDf[3].str.contains(rules)] # lastMonthQueryTimesDf = lastMonthQueryTimesDf[lastMonthQueryTimesDf[3] == queryReason] # 第三列 return lastMonthQueryTimesDf.shape[0]; # 获取最近几个月查询机构次数 def getLastMonthQueryOrgTimes(df, month, queryReason,reportTime): # 当前日期 # last1MonthDateStr = time.strftime("%Y-%m-%d"); # 报告日期 last1MonthDateStr = reportTime;#queryInfo["reportTime"].replace(".", "-") # 最近一个月 lastMonthDate = np.datetime64(last1MonthDateStr, "D") - np.timedelta64(30 * month, 'D') lastMonthQueryTimesDf = df[df[1] >= str(lastMonthDate)] if queryReason != None and queryReason != "": lastMonthQueryTimesDf = lastMonthQueryTimesDf[lastMonthQueryTimesDf[3] == queryReason] # 第三列 return lastMonthQueryTimesDf[2].unique().size; # 最后一次查询距离现在的月数贷款审批 def getLastTimeQueryMonth(df, queryReason,reportTime): # 当前日期 lastMonthQueryTimesDf = df; if queryReason != None and queryReason != "": lastMonthQueryTimesDf = df[df[3] == queryReason] # 第三列 if not lastMonthQueryTimesDf.empty: lastMonthQueryTimesDf = lastMonthQueryTimesDf.reset_index(drop=True) lastMonthQueryDate = lastMonthQueryTimesDf.loc[0, :][1].replace(".", "-"); return utils.difMonthReportTime(lastMonthQueryDate,reportTime) else: return None # 获取最近几个月查询机构次数--汇算帐 #count(*) where (报告日期 - 查询日期的天数差)<=30 and 查询原因 != '贷后管理' def getLastMonthQueryOrgTimesNew(df, month, queryReason,reportTime): # 当前日期 # last1MonthDateStr = time.strftime("%Y-%m-%d"); # 报告日期 last1MonthDateStr = reportTime;#queryInfo["reportTime"].replace(".", "-") # 最近一个月 lastMonthDate = np.datetime64(last1MonthDateStr, "D") - np.timedelta64(30 * month, 'D') lastMonthQueryTimesDf = df[df[1] >= str(lastMonthDate)] if queryReason != None and queryReason != "": lastMonthQueryTimesDf = lastMonthQueryTimesDf[lastMonthQueryTimesDf[3] != queryReason] # 第三列 return lastMonthQueryTimesDf[2].size; #新开发yuan #最近几个月欠税笔数 def getPayRcdCountNew(payRcdDf,reportTime,month): # reportTime = str(np.datetime64(reportTime, "M")) + "-02" reportTime = utils.get_last_month_first_day_v2(reportTime) payDate = utils.getLastMonthDate(reportTime, month) # payRcdDfTmp = payRcdDf[payRcdDf['还款日期'] >= payDate] payRcdDfTmp = payRcdDf[(payRcdDf['还款日期'] > payDate) & (payRcdDf['还款日期'] <= reportTime)] payStatus = ["Z","G", "D", "C", "N", "M", "1", "2", "3", "4", "5", "6", "7"] payRcdTimesDf = payRcdDfTmp[payRcdDfTmp['还款状态'].isin(payStatus)] count = payRcdTimesDf["还款日期"].unique().size; return count