Commit 37f90382 authored by Data-韩正辉's avatar Data-韩正辉

修改了保存为Excel的方式,提升性能

parent 3576fa39
# coding: utf-8
import sys
stdout = sys.stdout
# 加入父级搜索路径,根据情况修改
sys.path.insert(0, '..')
sys.path.insert(0, '../..')
import pandas as pd
import numpy as np
import datetime
import os
from sqlalchemy import create_engine
import pyexcelerate
max_limit = 800000
stdout = sys.stdout
sys.stdout = stdout
# 引入数据库连接,并使修改生效
......@@ -19,18 +15,6 @@ pd.set_option('display.float_format', lambda x: '%.5f' % x)
mysql_engine = create_engine(
'mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.4.60:3306/new_transaction?charset=utf8', echo=True)
# 获取当前时间,用于创建文件路径,分类存储文件
today = datetime.datetime.now()
date_str = today.strftime('%Y%m%d')
# 主程序代码所在的路径
base_path = os.getcwd()
# 临时文件路径
tmp_path = os.path.join(base_path, 'file_' + date_str, 'temp')
# 输出文件路径
file_path = os.path.join(base_path, 'file_' + date_str)
if not os.path.exists(file_path):
os.makedirs(file_path)
if not os.path.exists(tmp_path):
os.makedirs(tmp_path)
start_time = '2017-10-01'
end_time = '2017-11-01'
......@@ -183,9 +167,18 @@ for i in xrange(0, len(date_range) - 1):
tmp = tmp[
[u'唯一编号', u'商户名称', u'产品编号', u'资金方', u'放款期数', u'当前期数', u'实还时间', u'还款总额', u'实还本金', u'实还利息', u'实还服务费', u'实还罚息',
u'其他收益', u'流水号', u'还款账户', u'账单金额', u'应还日期', u'应还本金', u'应还利息', u'应还本息-实还本息', u'还款总额-账单金额']]
tmp.to_csv(out_file_path + u'人工控制非去哪儿白条%s-%02d客户实还表(按还款时间)V2.csv' % (date_range[i].year, date_range[i].month),
tmp.to_csv(out_file_path + u'人工控制-普通白条-客户实还表(按还款时间)(%s-%02d).csv' % (date_range[i].year, date_range[i].month),
index=None, encoding='utf8')
# tmp.to_excel(os.path.join(file_path, '客户实还表(实还时间%s-%02d).xlsx' % (date_range[i].year, date_range[i].month)), index=None)
all_wb = pyexcelerate.Workbook()
for i in xrange(0, len(tmp), max_limit):
temp = tmp[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'人工控制-普通白条-客户实还表(按还款时间)(%s-%02d).xlsx' % (date_range[i].year, date_range[i].month))
print cnt, len(df)
loan_baoli = """
......@@ -426,7 +419,16 @@ for i in xrange(0, len(date_range) - 1):
tmp = tmp[
[u'唯一编号', u'商户名称', u'产品编号', u'资金方', u'放款期数', u'当前期数', u'实还时间', u'还款总额', u'实还本金', u'实还利息', u'实还服务费', u'实还罚息',
u'其他收益', u'流水号', u'还款账户', u'账单金额', u'应还日期', u'应还本金', u'应还利息', u'应还本息-实还本息', u'还款总额-账单金额']]
tmp.to_csv(out_file_path + u'人工控制非去哪儿白条%s-%02d客户实还表(按放款时间).csv' % (date_range[i].year, date_range[i].month),
tmp.to_csv(out_file_path + u'人工控制-普通白条-客户实还表(按放款时间)(%s-%02d).csv' % (date_range[i].year, date_range[i].month),
index=None, encoding='gbk')
all_wb = pyexcelerate.Workbook()
for i in xrange(0, len(tmp), max_limit):
temp = tmp[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'人工控制-普通白条-客户实还表(按放款时间)(%s-%02d).xlsx' % (date_range[i].year, date_range[i].month))
# tmp.to_excel(os.path.join(file_path, '客户实还表(放款时间%s-%02d).xlsx' % (date_range[i].year, date_range[i].month)), index=None)
print cnt, len(df_loan_repay)
\ No newline at end of file
......@@ -3,7 +3,9 @@
import numpy as np
import pandas as pd
from sqlalchemy import create_engine
import pyexcelerate
max_limit = 800000
pd.options.mode.chained_assignment = None
pd.set_option('display.float_format', lambda x: '%.5f' % x)
engine_new_transaction = create_engine(
......@@ -311,5 +313,14 @@ for i in xrange(0, len(date_range) - 1):
[u'唯一编码', u'商户名称', u'资金方', u'放款时间', u'放款金额', u'本金债权', u'贷款总期数', u'应还期数', u'应还时间', u'应还本金', u'应还利息', u'实还本金',
u'实还利息', u'应还本息 - 实还本息']]
tmp[u'实还利息'] = 0.00
tmp.to_csv(out_file_path + u'人工控制-非去哪放款表(放款时间%s-%02d)V2.csv' % (date_range[i].year, date_range[i].month),
index=None, encoding='GBK')
all_wb = pyexcelerate.Workbook()
for i in xrange(0, len(tmp), max_limit):
temp = tmp[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'人工控制-普通白条-放款表(%s-%02d).xlsx' % (date_range[i].year, date_range[i].month))
# -*- coding:utf-8 -*-
# Author: Perry_Zhu
import sys
import pandas as pd
from sqlalchemy import create_engine
import pyexcelerate
reload(sys)
sys.setdefaultencoding('utf8')
max_limit = 800000
# 注意修改数据源
engine_new_transaction = create_engine(
'mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.4.60:3306/new_transaction?charset=utf8',
echo=True)
path = u'E:/数据汇总/白条/还资金方/2017-10/'
path = u'E:/审计出表/11月份开始使用表数据/11月份白条出表/'
query_loan = """
SELECT tt.order_no 产品编号,tt.term_no 期数,tt.fund_name 资金方,max(tt.loan_paid_at) 放款时间,
......@@ -172,5 +172,12 @@ def tj():
# df.to_excel(path + u'直投白条还资金方明细-2017-10.xlsx', index=None)
df.to_excel(path + u'人工控制-直投白条还资金方(按实还时间)-2017-10.xlsx', index=None)
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(path + u'人工控制-普通白条-直投还资金方表(2017-10).xlsx')
tj()
# -*- coding:utf-8 -*-
# Author: Perry_Zhu
import datetime
import multiprocessing as mtp
import sys
from itertools import product
import pandas as pd
from dateutil.relativedelta import relativedelta
from sqlalchemy import create_engine
import pyexcelerate
max_limit = 800000
reload(sys)
sys.setdefaultencoding('utf8')
......@@ -18,7 +14,7 @@ engine_new_transaction = create_engine(
'mysql+mysqldb://internal_r:ArbNgtvlJzZHXsEu@172.16.4.60:3306/new_transaction?charset=utf8',
echo=True)
path = u'E:/数据汇总/白条/还资金方/2017-10/'
path = u'E:/审计出表/11月份开始使用表数据/11月份白条出表/'
query_repay_principal = """
SELECT
......@@ -105,7 +101,14 @@ def tj():
df = df[
[u'资金方', u'产品编号', u'放款时间', u'放款金额', u'客户退单日', u'退还给资金方日', u'退款总额', u'退款本金', u'退款利息', u'流水号', u'账单金额']]
# df.to_excel(path + u'直投白条退资金方款明细-2017-10.xlsx', index=None)
df.to_excel(path + u'人工控制-直投白条退资金方款明细-2017-10.xlsx', index=None)
# df.to_excel(path + u'人工控制-直投白条退资金方款明细-2017-10.xlsx', index=None)
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(path + u'人工控制-普通白条-直投退资金方表(2017-10).xlsx')
tj()
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