Commit c26fefc9 authored by Perry_Zhu's avatar Perry_Zhu

白条在贷调整

parent 479d4a2b
......@@ -5,8 +5,6 @@ import pandas as pd
import numpy as np
import datetime
from sqlalchemy import create_engine
import pyexcelerate
max_limit = 800000
reload(sys)
sys.setdefaultencoding('utf8')
......@@ -14,12 +12,9 @@ sys.setdefaultencoding('utf8')
engine_new_transaction = create_engine(
'mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.3.201:3306/all_back_0930?charset=utf8', echo=True)
#假如导出10月份的数据,则end_point 是11月份第一天,watch_point 是10月份最后一天
end_point = '2017-10-01'
watch_point = datetime.date(2017, 9, 30)
out_file_path = u'E:/审计出表/11月份开始使用表数据/11月份白条出表/在贷/'
out_file_path = u'E:/数据汇总/白条/在贷/'
query_loan = """
SELECT
tt.order_no,tt.term_no,
......@@ -109,7 +104,7 @@ loan_info = """
date(o.train_cancel_at) loan_paid_at
FROM
baitiao_order o
JOIN merchant m ON o.merchantId = m.merchant_id AND is_active=1 AND funding_corp_id = -2
JOIN merchant m ON o.merchantId = m.merchant_id AND funding_corp_id=1 AND is_active = -2
GROUP BY 1
)tt
GROUP BY 1
......@@ -200,6 +195,7 @@ select tt.order_no,tt.term_no,tt.paid_principle from(
GROUP BY 1,2
)tt
GROUP BY 1,2
"""
df_info = pd.read_sql(loan_info, engine_new_transaction)
......@@ -209,7 +205,6 @@ df_ali = pd.read_sql(repay_ali % end_point, engine_new_transaction)
df_bank = pd.read_sql(repay_bank % end_point, engine_new_transaction)
df_cash = pd.read_sql(repay_cash % (end_point, end_point), engine_new_transaction)
df_repay = pd.concat([df_online, df_ali, df_bank, df_cash], axis=0, ignore_index=True)
df_repay.dropna(axis=0, inplace=True)
df_loan = df_loan.loc[df_loan['principle'] > 0]
df_info.order_no = df_info.order_no.astype(str)
......@@ -221,9 +216,6 @@ df_repay = df_repay.groupby(['order_no', 'term_no'])['paid_principle'].agg({'sum
df_out = pd.merge(df_loan, df_repay, on=['order_no', 'term_no'], how='left')
df_out['deadline'] = pd.to_datetime(df_out.deadline)
df_out.fillna(0, inplace=True)
# watch_point = datetime.date(2017, 9, 30)
df_out['flag'] = (watch_point-df_out['deadline']).dt.days
df_out['zaidai'] = df_out['principle'] - df_out['paid_principle']
df_out.loc[df_out['order_no'].isin(
['trainmall1483695024282', 'trainmall1484301600672', 'trainmall1486362269554', 'trainmall1487920296689',
......@@ -231,38 +223,14 @@ df_out.loc[df_out['order_no'].isin(
'trainmall1484301600672', 'trainmall1486362269554', 'grabtrainmall1484650405321', 'trainmall1495785791995',
'trainmall1499935282194', 'trainmall16008368458050561', 'trainmall16008408858634241',
'trainmall16112348780571649', 'trainmall16112552463312897']), 'zaidai'] = 0
#只在17年使用的部分,调账使用
'''
df_out.loc[df_out['product_no']=='300156290067001502503609','flag'] = 1
'''
df_out.loc[(df_out['flag']<=0),'0'] = df_out['zaidai']
df_out.loc[(df_out['flag']>=1) &(df_out['flag']<=30),'01-30'] = df_out['zaidai']
df_out.loc[(df_out['flag']>=31) &(df_out['flag']<=60),'31-60'] = df_out['zaidai']
df_out.loc[(df_out['flag']>=61) &(df_out['flag']<=90),'61-90'] = df_out['zaidai']
df_out.loc[(df_out['flag']>=91) &(df_out['flag']<=120),'91-120'] = df_out['zaidai']
df_out.loc[(df_out['flag']>=121) &(df_out['flag']<=150),'121-150'] = df_out['zaidai']
df_out.loc[(df_out['flag']>=151) &(df_out['flag']<=180),'151-180'] = df_out['zaidai']
df_out.loc[(df_out['flag']>=181) &(df_out['flag']<=360),'181-360'] = df_out['zaidai']
df_out.loc[(df_out['flag']>=361),'361+'] = df_out['zaidai']
# df_out['zaidai'] = df_out['zaidai'].apply(lambda x: np.round(x, 2))
df = df_out.groupby(['order_no'])['0','01-30','31-60','61-90','91-120','121-150','151-180','181-360','361+'].sum().reset_index()
df.fillna(0,inplace=True)
df = df_out.groupby(['order_no'])['zaidai'].agg({'sum'}).reset_index().rename(columns={'sum': u'未还本金'})
df_loan.order_no = df_loan.order_no.astype(str)
df = pd.merge(df, df_info, on='order_no', how='left')
df.rename(columns={'order_no': u'订单号'
}, inplace=True)
df = df[[u'商户', u'订单号', u'订单金额', u'合同期数', u'放款时间','0','01-30','31-60','61-90','91-120','121-150','151-180','181-360','361+']]
all_wb = pyexcelerate.Workbook()
for i in xrange(0, len(df), max_limit):
temp = df[i:i + max_limit]
temp_list = temp.values.tolist()
temp_list.insert(0, temp.columns.tolist())
all_wb.new_sheet(str(int(i / max_limit + 1)), data=temp_list)
all_wb.save(out_file_path + u'白条在贷按order_no展开_%s.xlsx' % end_point)
# df.to_csv(out_file_path + u'白条在贷按order_no展开_%s.csv' % end_point, index=None, encoding='UTF-8')
df = df[[u'商户', 'order_no', u'订单金额', u'合同期数', u'放款时间', u'未还本金']]
df[u'未还本金'].fillna(0, inplace=True)
df.rename(columns={'order_no': u'订单号'}, inplace=True)
step = 1000000
for n in range(0, len(df), step):
df[n:n + step].to_csv(out_file_path + u'白条在贷按order_no展开_%s.csv' % (end_point, n), index=None, encoding='UTF-8')
......@@ -81,7 +81,7 @@ loan_info = """
date(o.train_cancel_at) loan_paid_at
FROM
baitiao_order o
JOIN merchant m ON o.merchantId = m.merchant_id AND o.is_active=1 AND o.funding_corp_id = -2 and o.baitiao_type=0
JOIN merchant m ON o.merchantId = m.merchant_id AND o.funding_corp_id=1 AND o.is_active = -2 and o.baitiao_type=0
GROUP BY 1
)tt
GROUP BY 1
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment