tfse-etl-api-v0.2/rating/scripts/common.py

204 lines
5.5 KiB
Python
Raw Normal View History

2021-12-27 17:02:03 +08:00
import time
from rating.db import find_tyc_db, find_tfse_db
2021-12-28 17:27:58 +08:00
from rating.static.province_map import p_map
2021-12-27 17:02:03 +08:00
import pandas as pd
2022-01-07 16:53:51 +08:00
def modify_unit(param):
"""
金额单位从元改为万元
Parameters:
param: 金额数据
Returns:
result: 单位为万元的金额数据
"""
money = round(param/10000, 2)
return str(money)
2021-12-27 17:02:03 +08:00
def judge_list(param):
"""
判断列表中是否有None
如果有置为-
Parameters:
param: list列表
Returns:
result: 没有None的list
"""
df = pd.DataFrame(param)
df = df.fillna('-')
2022-01-07 16:53:51 +08:00
df = df[0].apply(lambda x: round(x/10000, 2) if isinstance(x, float) else x)
df = df.to_list()
2021-12-27 17:02:03 +08:00
df = [str(x) for x in df]
return df
def calculate_growth_rate(param1, param2):
"""
计算增长率
传入两年财务数据字典项算出年增长率
Parameters:
param1: 财务指标1
param2: 财务指标2
Returns:
增长率
"""
param1 = float(param1)
param2 = float(param2)
rate = round((param1 - param2) / param2, 2)
return rate
def calculate_amount(param):
"""
计算数据之和
清洗数据库数据根据需要返回
Parameters:
param: 数据库数据
Returns:
数据合计
"""
result = dict()
result['amount'] = 0
result['industry'] = list()
result['base'] = list()
for item in param:
result['amount'] += item['amount']
result['industry'].append(item['category'])
result['base'].append(item['base'])
return result
def calculate_list(param):
"""
计算列表中所有元素出现的次数
Parameters:
param: list数据
Returns:
列表元素出现次数对象
"""
result = dict()
for item in param:
result[item] = param.count(item)
return result
def time_stamp(param):
"""
时间戳转换
Parameters:
param: 时间戳数据
Returns:
转换后时间数据
"""
estiblish_time = param / 1000
put_date = time.localtime(estiblish_time)
date = time.strftime("%Y-%m-%d", put_date)
return date
def province_conversion(param):
"""
省份转换
Parameters:
param: 省份简称
Returns:
转换后省份全称
"""
res = [v for k, v in p_map.items() if k == param][0]
return res
# 获取数据库数据
def get_tfse_data(param):
"""
获取数据库数据
Parameters:
param: 企业名称企业ID评价ID
Returns:
report_data: 数据库数据
"""
company = param['company']
rid = param['rid']
cid = param['cid']
report_data = dict()
# 评价结果
es = find_tfse_db(db='评价', col='评价结果', query={'评价ID': rid})[0]
# 综合评价填报
cef = find_tfse_db(db='评价', col='综合评价填报', query={'评价ID': rid})[0]
# 指标明细
fid = find_tfse_db(db='企业', col='指标明细', query={'企业名称': company})
# 基本信息
cbd = find_tyc_db(db='公司背景', col='基本信息', query={'企业名称': company})[0]
# 企业股东
cs = find_tyc_db(db='公司背景', col='企业股东', query={'企业名称': company})[0]
# 对外投资
oi = find_tyc_db(db='公司背景', col='对外投资', query={'企业名称': company})[0]
# 进出口信用
ip = find_tyc_db(db='经营状况', col='进出口信用', query={'企业名称': company})[0]
# 专利
2022-01-07 16:53:51 +08:00
ip_02 = find_tyc_db(db='知识产权', col='专利', query={'企业名称': company})[0]
2021-12-27 17:02:03 +08:00
# 软件著作权
2022-01-07 16:53:51 +08:00
sc = find_tyc_db(db='知识产权', col='软件著作权', query={'企业名称': company})[0]
2021-12-27 17:02:03 +08:00
# 资质证书
2022-01-07 16:53:51 +08:00
qh = find_tyc_db(db='经营状况', col='资质证书', query={'企业名称': company})[0]
2021-12-27 17:02:03 +08:00
# 融资历史
fh = find_tyc_db(db='公司发展', col='融资历史', query={'企业名称': company})[0]
# 风险数据
rd = find_tfse_db(db='评价', col='风险数据', query={'企业ID': cid})[0]
# 周边风险
pr = find_tyc_db(db='天眼风险', col='周边风险', query={'企业名称': company})[0]
report_data['评价结果'] = es
report_data['综合评价填报'] = cef
report_data['指标明细'] = fid
report_data['基本信息'] = cbd
report_data['企业股东'] = cs
report_data['对外投资'] = oi
report_data['进出口信用'] = ip
report_data['专利'] = ip_02
report_data['软件著作权'] = sc
report_data['资质证书'] = qh
report_data['融资历史'] = fh
report_data['风险数据'] = rd
report_data['周边风险'] = pr
return report_data
def shareholder_strength_data(param):
"""
股东数据
清洗数据库数据根据需要返回
Parameters:
param: 企业名称
Returns:
股东数据
"""
data = dict()
# 基本信息
cbd = find_tyc_db(db='公司背景', col='基本信息', query={'企业名称': param})[0]
# 企业股东
cs = find_tyc_db(db='公司背景', col='企业股东', query={'企业名称': param})[0]
data['基本信息'] = cbd
data['企业股东'] = cs
return data
def person_subsidiaries(param):
"""
人员控股数据
清洗数据库数据根据需要返回
Parameters:
param: 人员id
Returns:
人员控股数据
"""
data = dict()
# 控股数据
ps = find_tyc_db(db='公司背景', col='人员控股企业', query={'人员ID': param})[0]
data['人员控股企业'] = ps
2021-12-30 14:40:34 +08:00
return data