Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
D
duizhang_tools
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
data—王林芳
duizhang_tools
Commits
5621c030
Commit
5621c030
authored
Nov 17, 2017
by
Perry_Zhu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
现金贷人工控制样式调整
parent
75980590
Changes
3
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
85 additions
and
81 deletions
+85
-81
人工控制-现金贷-客户实还表.py
人工控制/现金贷/人工控制-现金贷-客户实还表.py
+0
-0
人工控制-现金贷-放款表.py
人工控制/现金贷/人工控制-现金贷-放款表.py
+37
-36
人工控制-现金贷-还资金方表.py
人工控制/现金贷/人工控制-现金贷-还资金方表.py
+48
-45
No files found.
人工控制/现金贷/人工控制-现金贷-客户实还表.py
View file @
5621c030
This diff is collapsed.
Click to expand it.
人工控制/现金贷/人工控制-现金贷-放款表.py
View file @
5621c030
import
sys
import
datetime
import
datetime
import
pandas
as
pd
import
sys
from
sqlalchemy
import
create_engine
from
dateutil.relativedelta
import
relativedelta
from
itertools
import
product
from
itertools
import
product
import
os
import
pandas
as
pd
import
pyexcelerate
import
pyexcelerate
from
dateutil.relativedelta
import
relativedelta
from
sqlalchemy
import
create_engine
reload
(
sys
)
reload
(
sys
)
sys
.
setdefaultencoding
(
"utf-8"
)
sys
.
setdefaultencoding
(
"utf-8"
)
pd
.
options
.
mode
.
chained_assignment
=
None
pd
.
options
.
mode
.
chained_assignment
=
None
max_limit
=
800000
max_limit
=
800000
import
os
# '''
# '''
# 在代码之前,需要进行前期数据的准备,先从数据库中获取所需数据,然后用pandas读取进行操作
# 在代码之前,需要进行前期数据的准备,先从数据库中获取所需数据,然后用pandas读取进行操作
...
@@ -57,26 +56,28 @@ engine_xjd = create_engine('mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.4
...
@@ -57,26 +56,28 @@ engine_xjd = create_engine('mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.4
#
#
# #使用时先要修改 deadline,如果出9月份的,deadline > = 2017-09-01即可
# #使用时先要修改 deadline,如果出9月份的,deadline > = 2017-09-01即可
sql_fund
=
'''
sql_fund
=
'''
select frp.ref_id,frp.term_no '应还期数',date(frp.deadline) '应还资金方时间',frp.principle+frp.interest '应还资金方本息'
select frp.ref_id,frp.term_no '应还期数',date(frp.deadline) '应还资金方时间',
from all_back_0930.funding_repayment_plan frp
frp.principle+frp.interest '应还资金方本息'
where frp.deadline >= '2017-09-01'
from all_back_0930.funding_repayment_plan frp
where frp.deadline >= '2017-09-01'
'''
'''
df_fund
=
pd
.
read_sql
(
sql_fund
,
engine_xjd
)
df_fund
=
pd
.
read_sql
(
sql_fund
,
engine_xjd
)
#
#
#此部分不需要进行修改
#
此部分不需要进行修改
sql_contract_no
=
'''
sql_contract_no
=
'''
select ref_id,contract_no
select ref_id,contract_no
from basic.loan_class_contract_1002 lco
from basic.loan_class_contract_1002 lco
'''
'''
#10月05日修改为basic.loan_class_contract_1002
# 10月05日修改为basic.loan_class_contract_1002
df_contract_no
=
pd
.
read_sql
(
sql_contract_no
,
engine_xjd
)
df_contract_no
=
pd
.
read_sql
(
sql_contract_no
,
engine_xjd
)
# df_repay_all = pd.read_csv(u'E:/人工控制-现金贷-放款表(客户实还汇总).csv',encoding='utf8')
# df_repay_all = pd.read_csv(u'E:/人工控制-现金贷-放款表(客户实还汇总).csv',encoding='utf8')
# df_contract_no = pd.read_csv(u'E:/人工控制-现金贷-放款合同号专用.csv',encoding='utf8')
# df_contract_no = pd.read_csv(u'E:/人工控制-现金贷-放款合同号专用.csv',encoding='utf8')
def
mc_pay
(
year
,
month
):
def
mc_pay
(
year
,
month
):
#
year, month = 2017, 2
#
year, month = 2017, 2
start_time
=
datetime
.
datetime
(
year
,
month
,
1
,
0
,
0
,
0
)
start_time
=
datetime
.
datetime
(
year
,
month
,
1
,
0
,
0
,
0
)
end_time
=
start_time
+
relativedelta
(
months
=+
1
)
end_time
=
start_time
+
relativedelta
(
months
=+
1
)
...
@@ -91,7 +92,7 @@ def mc_pay(year, month):
...
@@ -91,7 +92,7 @@ def mc_pay(year, month):
join all_back_0930.loan_manifest lm on lm.ref_id = urp.ref_id
join all_back_0930.loan_manifest lm on lm.ref_id = urp.ref_id
where lm.loan_paid_at>='
%
s' and lm.loan_paid_at<'
%
s'
where lm.loan_paid_at>='
%
s' and lm.loan_paid_at<'
%
s'
group by 1,2
group by 1,2
'''
%
(
start_time
,
end_time
)
'''
%
(
start_time
,
end_time
)
sql_pay
=
'''
sql_pay
=
'''
SELECT
SELECT
...
@@ -119,13 +120,13 @@ def mc_pay(year, month):
...
@@ -119,13 +120,13 @@ def mc_pay(year, month):
df_pay
[
'ref_id'
]
=
df_pay
[
'ref_id'
]
.
astype
(
'int64'
)
df_pay
[
'ref_id'
]
=
df_pay
[
'ref_id'
]
.
astype
(
'int64'
)
df_fund
[
'ref_id'
]
=
df_fund
[
'ref_id'
]
.
astype
(
'int64'
)
df_fund
[
'ref_id'
]
=
df_fund
[
'ref_id'
]
.
astype
(
'int64'
)
df_pay
=
pd
.
merge
(
df_pay
,
df_fund
,
on
=
'ref_id'
,
how
=
'left'
)
df_pay
=
pd
.
merge
(
df_pay
,
df_fund
,
on
=
'ref_id'
,
how
=
'left'
)
# df_pay= df_pay.drop([u'ref_id'])
# df_pay= df_pay.drop([u'ref_id'])
df_pay
=
df_pay
.
fillna
(
0
)
df_pay
=
df_pay
.
fillna
(
0
)
df_pay
[
u'唯一编号'
]
=
df_pay
[
'loan_id'
]
.
astype
(
'str'
)
+
df_pay
[
u'应还期数'
]
.
astype
(
'int'
)
.
astype
(
'str'
)
df_pay
[
u'唯一编号'
]
=
df_pay
[
'loan_id'
]
.
astype
(
'str'
)
+
df_pay
[
u'应还期数'
]
.
astype
(
'int'
)
.
astype
(
'str'
)
df_pay
[
u'Merge'
]
=
df_pay
[
u'唯一编号'
]
+
df_pay
[
u'放款时间'
]
.
astype
(
'str'
)
+
df_pay
[
u'应还资金方本息'
]
.
astype
(
'str'
)
df_pay
[
u'Merge'
]
=
df_pay
[
u'唯一编号'
]
+
df_pay
[
u'放款时间'
]
.
astype
(
'str'
)
+
df_pay
[
u'应还资金方本息'
]
.
astype
(
'str'
)
df_pay
[
'loan_id'
]
=
df_pay
[
'loan_id'
]
.
astype
(
'int64'
)
df_pay
[
'loan_id'
]
=
df_pay
[
'loan_id'
]
.
astype
(
'int64'
)
df_pay
[
'ref_id'
]
=
df_pay
[
'ref_id'
]
.
astype
(
'int64'
)
df_pay
[
'ref_id'
]
=
df_pay
[
'ref_id'
]
.
astype
(
'int64'
)
...
@@ -134,7 +135,7 @@ def mc_pay(year, month):
...
@@ -134,7 +135,7 @@ def mc_pay(year, month):
df_repay_all
[
u'ref_id'
]
=
df_repay_all
[
u'ref_id'
]
.
astype
(
'int64'
)
df_repay_all
[
u'ref_id'
]
=
df_repay_all
[
u'ref_id'
]
.
astype
(
'int64'
)
df_repay_all
[
u'应还期数'
]
=
df_repay_all
[
u'应还期数'
]
.
astype
(
'int64'
)
df_repay_all
[
u'应还期数'
]
=
df_repay_all
[
u'应还期数'
]
.
astype
(
'int64'
)
df_pay
=
pd
.
merge
(
df_pay
,
df_repay_all
,
on
=
[
u'ref_id'
,
u'应还期数'
],
how
=
'left'
)
df_pay
=
pd
.
merge
(
df_pay
,
df_repay_all
,
on
=
[
u'ref_id'
,
u'应还期数'
],
how
=
'left'
)
df_pay
[
u'客户实还服务费'
]
=
df_pay
[
u'实还服务费'
]
df_pay
[
u'客户实还服务费'
]
=
df_pay
[
u'实还服务费'
]
df_pay
.
loc
[
df_pay
[
'loan_id'
]
.
duplicated
(),
u'放款金额'
]
=
0
df_pay
.
loc
[
df_pay
[
'loan_id'
]
.
duplicated
(),
u'放款金额'
]
=
0
...
@@ -143,34 +144,34 @@ def mc_pay(year, month):
...
@@ -143,34 +144,34 @@ def mc_pay(year, month):
df_pay
[
u'应还总服务费-实还服务费'
]
=
df_pay
[
u'应收总服务费'
]
.
fillna
(
0
)
-
df_pay
[
u'实还服务费'
]
.
fillna
(
0
)
df_pay
[
u'应还总服务费-实还服务费'
]
=
df_pay
[
u'应收总服务费'
]
.
fillna
(
0
)
-
df_pay
[
u'实还服务费'
]
.
fillna
(
0
)
df_pay
[
u'应还资金方本息-客户实还本息'
]
=
df_pay
[
u'应还资金方本息'
]
.
fillna
(
0
)
-
df_pay
[
u'客户实还本息'
]
.
fillna
(
0
)
df_pay
[
u'应还资金方本息-客户实还本息'
]
=
df_pay
[
u'应还资金方本息'
]
.
fillna
(
0
)
-
df_pay
[
u'客户实还本息'
]
.
fillna
(
0
)
df_pay
=
pd
.
merge
(
df_pay
,
df_contract_no
,
on
=
'ref_id'
,
how
=
'left'
)
df_pay
=
pd
.
merge
(
df_pay
,
df_contract_no
,
on
=
'ref_id'
,
how
=
'left'
)
df_pay
=
df_pay
.
fillna
(
0
)
df_pay
=
df_pay
.
fillna
(
0
)
df_pay
=
df_pay
.
drop
([
'ref_id'
,
u'实还服务费'
],
axis
=
1
)
df_pay
=
df_pay
.
drop
([
'ref_id'
,
u'实还服务费'
],
axis
=
1
)
print
(
u'放款金额:'
+
str
(
sum
(
df_pay
[
u'放款金额'
]))
+
u' 应收总服务费:'
+
str
(
sum
(
df_pay
[
u'应收总服务费'
]))
+
u' 应还资金方本息:'
+
str
(
print
(
u'放款金额:'
+
str
(
sum
(
df_pay
[
u'放款金额'
]))
+
u' 应收总服务费:'
+
str
(
sum
(
df_pay
[
u'应收总服务费'
]))
+
u' 应还资金方本息:'
+
str
(
sum
(
df_pay
[
u'应还资金方本息'
]))
+
u' 客户实还本息'
+
str
(
sum
(
df_pay
[
u'应还资金方本息'
]))
+
u' 客户实还本息'
+
str
(
sum
(
df_pay
[
u'客户实还本息'
])))
sum
(
df_pay
[
u'客户实还本息'
])))
df_pay
.
rename
(
columns
=
{
'contract_no'
:
u'合同号'
,
u'实还服务费'
:
u'客户实还服务费'
},
inplace
=
True
)
df_pay
.
rename
(
columns
=
{
'contract_no'
:
u'合同号'
,
u'实还服务费'
:
u'客户实还服务费'
},
inplace
=
True
)
columns
=
[
u'唯一编号'
,
u'资金方'
,
u'loan_id'
,
u'合同号'
,
u'放款时间'
,
u'放款金额'
,
u'放款渠道'
,
u'应收总服务费'
,
u'应还期数'
,
u'应还资金方时间'
,
columns
=
[
u'唯一编号'
,
u'资金方'
,
u'loan_id'
,
u'合同号'
,
u'放款时间'
,
u'放款金额'
,
u'放款渠道'
,
u'应收总服务费'
,
u'应还期数'
,
u'应还资金方时间'
,
u'应还资金方本息'
,
u'Merge'
,
u'应还期数'
,
u'应还资金方时间'
,
u'应还资金方本息'
,
u'应还期数'
,
u'客户实还服务费'
,
u'客户实还本息'
,
u'应还资金方本息'
,
u'Merge'
,
u'应还期数'
,
u'应还资金方时间'
,
u'应还资金方本息'
,
u'应还期数'
,
u'客户实还服务费'
,
u'客户实还本息'
,
u'应还总服务费-实还服务费'
,
u'应还资金方本息-客户实还本息'
]
u'应还总服务费-实还服务费'
,
u'应还资金方本息-客户实还本息'
]
all_wb
=
pyexcelerate
.
Workbook
()
all_wb
=
pyexcelerate
.
Workbook
()
for
i
in
xrange
(
0
,
len
(
df_pay
),
max_limit
):
for
i
in
xrange
(
0
,
len
(
df_pay
),
max_limit
):
temp
=
df_pay
[
i
:
i
+
max_limit
][
columns
]
temp
=
df_pay
[
i
:
i
+
max_limit
][
columns
]
temp_list
=
temp
.
values
.
tolist
()
temp_list
=
temp
.
values
.
tolist
()
temp_list
.
insert
(
0
,
temp
.
columns
.
tolist
())
temp_list
.
insert
(
0
,
temp
.
columns
.
tolist
())
all_wb
.
new_sheet
(
str
(
int
(
i
/
max_limit
+
1
)),
data
=
temp_list
)
all_wb
.
new_sheet
(
str
(
int
(
i
/
max_limit
+
1
)),
data
=
temp_list
)
all_wb
.
save
(
path
+
u'人工控制-现金贷-放款表_(
%
d-
%02
d).xlsx'
%
(
start_time
.
year
,
start_time
.
month
))
all_wb
.
save
(
path
+
u'人工控制-现金贷-放款表_(
%
d-
%02
d).xlsx'
%
(
start_time
.
year
,
start_time
.
month
))
# if len(df_pay) > max_limit:
# if len(df_pay) > max_limit:
# for i in xrange(0, len(df_pay), max_limit):
# for i in xrange(0, len(df_pay), max_limit):
# df_pay[i:i + max_limit].to_excel(os.path.join(path, u'人工控制-现金贷-放款表-(%s-%02d)-%d.xlsx' % (
# df_pay[i:i + max_limit].to_excel(os.path.join(path, u'人工控制-现金贷-放款表-(%s-%02d)-%d.xlsx' % (
# year, month, i / max_limit + 1)), index=None, columns=columns)
# year, month, i / max_limit + 1)), index=None, columns=columns)
# else:
# else:
# df_pay.to_excel(path + u'人工控制-现金贷-放款表-(%d-%d).xlsx' % (year, month), index=None, columns=columns)
# df_pay.to_excel(path + u'人工控制-现金贷-放款表-(%d-%d).xlsx' % (year, month), index=None, columns=columns)
if
__name__
==
'__main__'
:
if
__name__
==
'__main__'
:
year
=
[
2017
]
year
=
[
2017
]
...
...
人工控制/现金贷/人工控制-现金贷-还资金方表.py
View file @
5621c030
...
@@ -11,7 +11,7 @@ reload(sys)
...
@@ -11,7 +11,7 @@ reload(sys)
sys
.
setdefaultencoding
(
"utf-8"
)
sys
.
setdefaultencoding
(
"utf-8"
)
pd
.
options
.
mode
.
chained_assignment
=
None
pd
.
options
.
mode
.
chained_assignment
=
None
#此路径为服务器路径专用
#
此路径为服务器路径专用
# path = u'./hanzhenghui/'
# path = u'./hanzhenghui/'
path
=
u'E:/审计出表/人工控制/现金贷-还资金方表-1010版本/'
path
=
u'E:/审计出表/人工控制/现金贷-还资金方表-1010版本/'
engine_xjd
=
create_engine
(
'mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.4.60:3306/?charset=utf8'
,
engine_xjd
=
create_engine
(
'mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.4.60:3306/?charset=utf8'
,
...
@@ -27,36 +27,36 @@ where loan_paid_at>='%s' and loan_paid_at <'%s'
...
@@ -27,36 +27,36 @@ where loan_paid_at>='%s' and loan_paid_at <'%s'
and is_active in (1, -2)
and is_active in (1, -2)
'''
'''
#获取还资金方计划,分为两部分,这5个资金方使用的是用户还款计划,user_repayment_plan
#
获取还资金方计划,分为两部分,这5个资金方使用的是用户还款计划,user_repayment_plan
sql_repay_frr_2
=
'''
sql_repay_frr_2
=
'''
select
select
urp.ref_id,
urp.ref_id,
urp.term_no '应还期数',
urp.term_no '应还期数',
date(urp.deadline) '应还资金方时间',
date(urp.deadline) '应还资金方时间',
urp.principle+urp.interest '应还资金方本息'
urp.principle+urp.interest '应还资金方本息'
from all_back_0831.user_repayment_plan urp
from all_back_0831.user_repayment_plan urp
join all_back_0831.loan_manifest lm on lm.ref_id = urp.ref_id
join all_back_0831.loan_manifest lm on lm.ref_id = urp.ref_id
where lm.loan_paid_at>='
%
s' and loan_paid_at<'
%
s'
where lm.loan_paid_at>='
%
s' and loan_paid_at<'
%
s'
and urp.fund_code in (210,270,310,320,410,430)
and urp.fund_code in (210,270,310,320,410,430)
'''
'''
#获取还资金方计划2,其余部分从test_shiyao.funding_repayment_plan中获取,如果在获取过程中出现丢失,可以查看是否数据库缺失
#
获取还资金方计划2,其余部分从test_shiyao.funding_repayment_plan中获取,如果在获取过程中出现丢失,可以查看是否数据库缺失
sql_repay_frr_3
=
'''
sql_repay_frr_3
=
'''
select
select
frp.ref_id,
frp.ref_id,
frp.term_no '应还期数',
frp.term_no '应还期数',
date(frp.deadline) '应还资金方时间',
date(frp.deadline) '应还资金方时间',
frp.interest+frp.principle '应还资金方本息'
frp.interest+frp.principle '应还资金方本息'
from audit.funding_repayment_plan frp
from audit.funding_repayment_plan frp
join all_back_0831.loan_manifest lm on lm.ref_id = frp.ref_id
join all_back_0831.loan_manifest lm on lm.ref_id = frp.ref_id
WHERE lm.loan_paid_at>='
%
s' and loan_paid_at<'
%
s'
WHERE lm.loan_paid_at>='
%
s' and loan_paid_at<'
%
s'
and lm.funding_code not in (210,270,310,320,410,430)
and lm.funding_code not in (210,270,310,320,410,430)
'''
'''
#获取实还资金方信息,目前从audit.funding_repayment_record获取,可看后续是否需要修改
#
获取实还资金方信息,目前从audit.funding_repayment_record获取,可看后续是否需要修改
sql_refund
=
'''
sql_refund
=
'''
SELECT
SELECT
frr.ref_id,
frr.ref_id,
date(frr.repaid_at) '实还时间',
date(frr.repaid_at) '实还时间',
sum(frr.current_repayment) '实还总额',
sum(frr.current_repayment) '实还总额',
...
@@ -64,65 +64,67 @@ sql_refund = '''
...
@@ -64,65 +64,67 @@ sql_refund = '''
sum(frr.interest) '实还利息',
sum(frr.interest) '实还利息',
frr.flow_id '流水号',
frr.flow_id '流水号',
frr.term_no '应还期数'
frr.term_no '应还期数'
FROM
FROM
all_back_0831.funding_repayment_record frr
all_back_0831.funding_repayment_record frr
join all_back_0831.loan_manifest lm on lm.ref_id = frr.ref_id
join all_back_0831.loan_manifest lm on lm.ref_id = frr.ref_id
JOIN basic.funding_corp fc ON fc.funding_code = frr.funding_code
JOIN basic.funding_corp fc ON fc.funding_code = frr.funding_code
WHERE lm.loan_paid_at>='
%
s'
WHERE lm.loan_paid_at>='
%
s'
and lm.loan_paid_at <'
%
s'
and lm.loan_paid_at <'
%
s'
AND frr.is_active = 1
AND frr.is_active = 1
GROUP BY 1,frr.term_no
GROUP BY 1,frr.term_no
'''
'''
sql_flow_id_reamount
=
'''
sql_flow_id_reamount
=
'''
select flow_id,ref_amount
select flow_id,ref_amount
from basic.lkb_to_fund_ref
from basic.lkb_to_fund_ref
'''
'''
#df_flow_id.to_csv(u'E:/flow_id对应银行金额.csv',encoding='utf8')
def
refund
(
year
,
month
):
# df_flow_id.to_csv(u'E:/flow_id对应银行金额.csv',encoding='utf8')
#year,month = 2017,9
def
refund
(
year
,
month
):
# year,month = 2017,9
df_flow_id_reamount
=
pd
.
read_sql
(
sql_flow_id_reamount
,
con
=
engine_xjd
)
df_flow_id_reamount
=
pd
.
read_sql
(
sql_flow_id_reamount
,
con
=
engine_xjd
)
start_time
=
datetime
.
datetime
(
year
,
month
,
1
,
0
,
0
,
0
)
start_time
=
datetime
.
datetime
(
year
,
month
,
1
,
0
,
0
,
0
)
end_time
=
start_time
+
relativedelta
(
months
=+
1
)
end_time
=
start_time
+
relativedelta
(
months
=+
1
)
df_all
=
pd
.
read_sql
(
sql_refund
%
(
start_time
,
end_time
),
con
=
engine_xjd
)
df_all
=
pd
.
read_sql
(
sql_refund
%
(
start_time
,
end_time
),
con
=
engine_xjd
)
#
实还部分进行去重
#
实还部分进行去重
df_all
=
df_all
.
drop_duplicates
([
u'ref_id'
,
u'实还时间'
,
u'实还本金'
,
u'实还总额'
,
u'实还利息'
,
u'流水号'
,
u'应还期数'
])
df_all
=
df_all
.
drop_duplicates
([
u'ref_id'
,
u'实还时间'
,
u'实还本金'
,
u'实还总额'
,
u'实还利息'
,
u'流水号'
,
u'应还期数'
])
df_all
[
'ref_id'
]
=
df_all
[
'ref_id'
]
.
astype
(
'int64'
)
df_all
[
'ref_id'
]
=
df_all
[
'ref_id'
]
.
astype
(
'int64'
)
df_all
=
df_all
.
drop_duplicates
()
df_all
=
df_all
.
drop_duplicates
()
#
放款部分
#
放款部分
df_lm
=
pd
.
read_sql
(
sql_lm
%
(
start_time
,
end_time
),
engine_xjd
)
df_lm
=
pd
.
read_sql
(
sql_lm
%
(
start_time
,
end_time
),
engine_xjd
)
df_lm
[
'ref_id'
]
=
df_lm
[
'ref_id'
]
.
astype
(
'int64'
)
df_lm
[
'ref_id'
]
=
df_lm
[
'ref_id'
]
.
astype
(
'int64'
)
df_lm
=
df_lm
.
drop_duplicates
()
df_lm
=
df_lm
.
drop_duplicates
()
#
实还资金方部分代码
#
实还资金方部分代码
# df_repay_frr_1 = pd.read_sql(sql_repay_frr_1 % (start_time, end_time), con=engine_xjd)
# df_repay_frr_1 = pd.read_sql(sql_repay_frr_1 % (start_time, end_time), con=engine_xjd)
df_repay_frr_2
=
pd
.
read_sql
(
sql_repay_frr_2
%
(
start_time
,
end_time
),
con
=
engine_xjd
)
df_repay_frr_2
=
pd
.
read_sql
(
sql_repay_frr_2
%
(
start_time
,
end_time
),
con
=
engine_xjd
)
df_repay_frr_3
=
pd
.
read_sql
(
sql_repay_frr_3
%
(
start_time
,
end_time
),
con
=
engine_xjd
)
df_repay_frr_3
=
pd
.
read_sql
(
sql_repay_frr_3
%
(
start_time
,
end_time
),
con
=
engine_xjd
)
df_repay_frr
=
pd
.
concat
([
df_repay_frr_2
,
df_repay_frr_3
])
df_repay_frr
=
pd
.
concat
([
df_repay_frr_2
,
df_repay_frr_3
])
df_repay_frr
[
'ref_id'
]
=
df_repay_frr
[
'ref_id'
]
.
astype
(
'int64'
)
df_repay_frr
[
'ref_id'
]
=
df_repay_frr
[
'ref_id'
]
.
astype
(
'int64'
)
df_repay_frr
[
u'应还期数'
]
=
df_repay_frr
[
u'应还期数'
]
.
astype
(
'int64'
)
df_repay_frr
[
u'应还期数'
]
=
df_repay_frr
[
u'应还期数'
]
.
astype
(
'int64'
)
df_flow_id_reamount
.
rename
(
columns
=
{
u'ref_amount'
:
u'银行金额'
,
u'flow_id'
:
u'流水号'
},
inplace
=
True
)
df_flow_id_reamount
.
rename
(
columns
=
{
u'ref_amount'
:
u'银行金额'
,
u'flow_id'
:
u'流水号'
},
inplace
=
True
)
df_repay_frr
=
df_repay_frr
.
drop_duplicates
()
df_repay_frr
=
df_repay_frr
.
drop_duplicates
()
#
sql_lm是一段时间内放款计划,在merge的过程中,由于df_repay_frr中有未还款情况,因此需要先合并还款计划,再对还款记录进行合并
#
sql_lm是一段时间内放款计划,在merge的过程中,由于df_repay_frr中有未还款情况,因此需要先合并还款计划,再对还款记录进行合并
df_res
=
pd
.
merge
(
df_lm
,
df_repay_frr
,
on
=
'ref_id'
,
how
=
'left'
)
df_res
=
pd
.
merge
(
df_lm
,
df_repay_frr
,
on
=
'ref_id'
,
how
=
'left'
)
df_res
=
pd
.
merge
(
df_res
,
df_all
,
on
=
[
'ref_id'
,
u'应还期数'
],
how
=
'left'
)
df_res
=
pd
.
merge
(
df_res
,
df_all
,
on
=
[
'ref_id'
,
u'应还期数'
],
how
=
'left'
)
df_res
[
u'流水号'
]
=
df_res
[
u'流水号'
]
.
fillna
(
0
)
.
astype
(
str
)
df_res
[
u'流水号'
]
=
df_res
[
u'流水号'
]
.
fillna
(
0
)
.
astype
(
str
)
df_flow_id_reamount
[
u'流水号'
]
=
df_flow_id_reamount
[
u'流水号'
]
.
astype
(
str
)
df_flow_id_reamount
[
u'流水号'
]
=
df_flow_id_reamount
[
u'流水号'
]
.
astype
(
str
)
df_res
=
pd
.
merge
(
df_res
,
df_flow_id_reamount
,
on
=
u'流水号'
,
how
=
'left'
)
df_res
=
pd
.
merge
(
df_res
,
df_flow_id_reamount
,
on
=
u'流水号'
,
how
=
'left'
)
df_res
=
df_res
[
~
df_res
[
u'实还总额'
]
.
isnull
()]
df_res
=
df_res
[
~
df_res
[
u'实还总额'
]
.
isnull
()]
df_res
=
df_res
[
~
df_res
[
u'流水号'
]
.
isnull
()]
df_res
=
df_res
[
~
df_res
[
u'流水号'
]
.
isnull
()]
...
@@ -130,19 +132,19 @@ def refund(year,month):
...
@@ -130,19 +132,19 @@ def refund(year,month):
df_res
.
fillna
(
0
,
inplace
=
True
)
df_res
.
fillna
(
0
,
inplace
=
True
)
df_res
[
u'银行金额'
]
=
df_res
[
u'银行金额'
]
.
fillna
(
0
)
df_res
[
u'银行金额'
]
=
df_res
[
u'银行金额'
]
.
fillna
(
0
)
a
=
(
df_res
[
u'银行金额'
]
==
0
)
&
(
df_res
[
u'资金方'
]
==
u'湖北消金'
)
a
=
(
df_res
[
u'银行金额'
]
==
0
)
&
(
df_res
[
u'资金方'
]
==
u'湖北消金'
)
df_res
.
loc
[
a
,
u'银行总额'
]
=
df_res
.
loc
[
a
,
u'实还本金'
]
+
df_res
.
loc
[
a
,
u'实还利息'
]
df_res
.
loc
[
a
,
u'银行总额'
]
=
df_res
.
loc
[
a
,
u'实还本金'
]
+
df_res
.
loc
[
a
,
u'实还利息'
]
df_res
.
loc
[(
df_res
[
u'银行金额'
]
==
0
),
u'银行总额'
]
=
df_res
[
u'实还总额'
]
.
fillna
(
0
)
df_res
.
loc
[(
df_res
[
u'银行金额'
]
==
0
),
u'银行总额'
]
=
df_res
[
u'实还总额'
]
.
fillna
(
0
)
df_res
[
u'唯一编号'
]
=
df_res
[
u'loan_id'
]
.
astype
(
'str'
)
+
df_res
[
u'应还期数'
]
.
fillna
(
0
)
.
astype
(
'int'
)
.
astype
(
'str'
)
df_res
[
u'唯一编号'
]
=
df_res
[
u'loan_id'
]
.
astype
(
'str'
)
+
df_res
[
u'应还期数'
]
.
fillna
(
0
)
.
astype
(
'int'
)
.
astype
(
'str'
)
df
=
df_res
.
fillna
(
0
)
df
=
df_res
.
fillna
(
0
)
df
[
u'应还资金方本息-实还资金方本息'
]
=
df
[
u'应还资金方本息'
]
.
fillna
(
0
)
-
df
[
u'实还本金'
]
.
fillna
(
0
)
-
df
[
u'实还利息'
]
.
fillna
(
0
)
df
[
u'应还资金方本息-实还资金方本息'
]
=
df
[
u'应还资金方本息'
]
.
fillna
(
0
)
-
df
[
u'实还本金'
]
.
fillna
(
0
)
-
df
[
u'实还利息'
]
.
fillna
(
0
)
columns
=
[
u'唯一编号'
,
u'资金方'
,
u'loan_id'
,
u'放款时间'
,
u'期数'
,
u'实还时间'
,
u'实还总额'
,
u'实还本金'
,
u'实还利息'
,
columns
=
[
u'唯一编号'
,
u'资金方'
,
u'loan_id'
,
u'放款时间'
,
u'期数'
,
u'实还时间'
,
u'实还总额'
,
u'实还本金'
,
u'实还利息'
,
u'流水号'
,
u'银行金额'
,
u'应还期数'
,
u'应还资金方时间'
,
u'应还资金方本息'
,
u'应还资金方本息-实还资金方本息'
]
u'流水号'
,
u'银行金额'
,
u'应还期数'
,
u'应还资金方时间'
,
u'应还资金方本息'
,
u'应还资金方本息-实还资金方本息'
]
print
(
u'实还总额:'
+
str
(
sum
(
df
[
u'实还总额'
]))
+
u' 应还资金方本息:'
+
str
(
print
(
u'实还总额:'
+
str
(
sum
(
df
[
u'实还总额'
]))
+
u' 应还资金方本息:'
+
str
(
sum
(
df
[
u'应还资金方本息'
]))
+
u' 应还资金方本息-实还资金方本息'
+
str
(
sum
(
df
[
u'应还资金方本息'
]))
+
u' 应还资金方本息-实还资金方本息'
+
str
(
...
@@ -151,18 +153,19 @@ def refund(year,month):
...
@@ -151,18 +153,19 @@ def refund(year,month):
if
len
(
df
)
>
max_limit
:
if
len
(
df
)
>
max_limit
:
for
i
in
xrange
(
0
,
len
(
df
),
max_limit
):
for
i
in
xrange
(
0
,
len
(
df
),
max_limit
):
df
[
i
:
i
+
max_limit
]
.
to_excel
(
os
.
path
.
join
(
path
,
u'0927现金贷—还资金方表-(
%
s-
%02
d)-
%
d.xlsx'
%
(
df
[
i
:
i
+
max_limit
]
.
to_excel
(
os
.
path
.
join
(
path
,
u'0927现金贷—还资金方表-(
%
s-
%02
d)-
%
d.xlsx'
%
(
year
,
month
,
i
/
max_limit
+
1
)),
index
=
None
,
columns
=
columns
)
year
,
month
,
i
/
max_limit
+
1
)),
index
=
None
,
columns
=
columns
)
else
:
else
:
df
.
to_excel
(
path
+
u'人工控制-现金贷—还资金方表-(
%
d-
%
d)-V4.xlsx'
%
(
year
,
month
),
index
=
None
,
columns
=
columns
)
df
.
to_excel
(
path
+
u'人工控制-现金贷—还资金方表-(
%
d-
%
d)-V4.xlsx'
%
(
year
,
month
),
index
=
None
,
columns
=
columns
)
if
__name__
==
'__main__'
:
if
__name__
==
'__main__'
:
year
=
[
2017
]
year
=
[
2017
]
month
=
range
(
1
,
2
,
1
)
month
=
range
(
1
,
2
,
1
)
for
year
,
month
in
product
(
year
,
month
):
for
year
,
month
in
product
(
year
,
month
):
print
(
'-----------
%
s-
%
s begins'
)
%
(
year
,
month
)
print
(
'-----------
%
s-
%
s begins'
)
%
(
year
,
month
)
refund
(
year
,
month
)
refund
(
year
,
month
)
print
(
'-----------
%
s-
%
s ends'
)
%
(
year
,
month
)
print
(
'-----------
%
s-
%
s ends'
)
%
(
year
,
month
)
print
(
'----------------------'
)
print
(
'----------------------'
)
print
'---------mian-----------'
print
'---------mian-----------'
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment