Commit 953d2dfe authored by 子恒's avatar 子恒

[init]

parent 065f11bf
Pipeline #170 canceled with stages
#!/usr/bin/env python
# coding=utf-8
rl_db_host = 'irongliang-db1-g.mysql.zhangbei.rds.aliyuncs.com'
# rl_db_host = '39.98.3.182'
rl_db_port = '3306'
rl_db_database = 'vision'
rl_db_user = 'factor_edit'
rl_db_pwd = 'tcdept_Factoredit'
import pandas as pd
import sqlalchemy as sa
from sqlalchemy.orm import sessionmaker
import config
class FactorDetailDoc(object):
def __init__(self):
db_url = '''mysql+mysqlconnector://{0}:{1}@{2}:{3}/{4}'''.format(config.rl_db_user,
config.rl_db_pwd,
config.rl_db_host,
config.rl_db_port,
config.rl_db_database)
self._destination = sa.create_engine(db_url)
self._destsession = sessionmaker(bind=self._destination, autocommit=False, autoflush=True)
self._factor_detail_columns = ['factor_type', 'factor_name', 'factor_en_name', 'factor_cn_name', 'direction',
'description','latxt_description', 'unit', 'view_dimension','tag']
def _exec_sql(self, sql):
session = self._destsession()
session.execute(sql)
session.commit()
session.close()
def update_factor_info(self, df):
sql = 'update factor_info set flag = null,is_verify=2'
self._exec_sql(sql)
df.to_sql(name='factor_info', con=self._destination, if_exists='append', index=False)
def update_factor_detail(self, df):
df = df[self._factor_detail_columns]
df.to_sql(name='factor_detail', con=self._destination, if_exists='append', index=False)
def update(self):
excel = pd.read_excel('factor_detail_doc.xlsx', sheet_name=None)
sheet_names = list(excel.keys())
factor_info = sheet_names.pop(0)
self.update_factor_info(excel[factor_info])
sql = f'update factor_detail set flag = null,is_verify=2'
self._exec_sql(sql)
for sheet_name in sheet_names:
self.update_factor_detail(excel[sheet_name])
if __name__ == '__main__':
fd = FactorDetailDoc()
fd.update()
#!/usr/bin/env python
# coding: utf-8
# In[1]:
import pandas as pd
import numpy as np
import sqlalchemy as sa
from sqlalchemy.ext.automap import automap_base
from sqlalchemy.orm import sessionmaker
from sqlalchemy import select, and_
# In[2]:
file_name = ['rl_data1.xlsx', 'rl_data2.xlsx']
# In[3]:
merge_data = []
for file in file_name:
print('doc/' + file)
if file == 'rl_data1.xlsx':
df = pd.read_excel('doc/' + file, skiprows=1)[['因子名称', '因子中文', '类别', '方向']].rename(
columns={'因子名称': 'factor_name', '因子中文': 'factor_cn_name', '类别': 'factor_type', '方向': 'direction'})
else:
df = pd.read_excel('doc/' + file, skiprows=1)[['因子名', '因子中文名', '因子类别', '方向']].rename(
columns={'因子名': 'factor_name', '因子中文名': 'factor_cn_name', '因子类别': 'factor_type', '方向': 'direction'})
merge_data.append(df)
merge_data = pd.concat(merge_data)
# In[4]:
DB_URL = '''mysql+mysqlconnector://{0}:{1}@{2}:{3}/{4}'''.format(config.rl_db_user,
config.rl_db_pwd,
config.rl_db_host,
config.rl_db_port,
config.rl_db_database)
# In[5]:
_engine = sa.create_engine(DB_URL)
_session = sessionmaker(bind=_engine, autocommit=False, autoflush=True)
_base = automap_base()
_base.prepare(_engine, reflect=True)
# In[6]:
FactorDetail = _base.classes['factor_detail']
query = select([FactorDetail]).where(
and_(
FactorDetail.flag == 1
))
factor_detail = pd.read_sql(query, _engine)
factor_detail = factor_detail.drop(['direction'], axis=1)
# In[7]:
loads_data = merge_data[['factor_name', 'direction']].merge(factor_detail, on=['factor_name'],
).drop_duplicates(
subset=['factor_name'], keep='first').set_index('factor_name')
# In[ ]:
for factor_name in loads_data.index.tolist():
direction = loads_data.loc[factor_name]['direction']
print(factor_name, direction)
if np.isnan(direction):
continue
session = _session()
session.execute(
'''update {0} set flag = 1, direction = {1}, is_verify=1 where factor_name=\'{2}\' and flag=1'''.format(
'factor_detail', int(loads_data.loc[factor_name]['direction']), factor_name))
session.commit()
session.close()
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