Commit 9f42261f authored by linfang.wang's avatar linfang.wang

加入MySQL 连接

parent e1f75aa1
...@@ -5,16 +5,15 @@ import datetime ...@@ -5,16 +5,15 @@ import datetime
def cal_week(df,date_name,date_name_new): def cal_week(df,date_name,date_name_new):
''' '''
:param df: dateframe :param df: dateframe
:param date_name: eg applied_at :param date_name: eg applied_at
:return: %y-%m-%d 每周第一天 :return: %y-%m-%d 每周第一天
''' '''
columns = df.columns.tolist()
if date_name not in columns:
raise ('not found %' % date_name)
df[date_name] = pd.to_datetime(df[date_name]) df[date_name] = pd.to_datetime(df[date_name])
df[date_name_new] = df[date_name].dt.strftime('%w') df[date_name_new] = df[date_name].dt.strftime('%w')
df[date_name_new] = df[date_name_new].astype(int) df[date_name_new] = df[date_name_new].astype(int)
......
[analysis_new]
db=analysis
host=172.30.4.63
port=3306
user=analysis_model
passwd=BGzTPQjDQqJ6PVnK
[risk_info]
db=risk_info
host=172.30.5.106
port=3306
user=sys_read
passwd=quant12345
[xyqb_feature]
db=xyqb_feature
host=xyqb-rule-db.quantgroups.com
port=6606
user=xyqb_rule_read
passwd=1q2w3e4r
[risk_analysis]
db=risk_analysis
host=172.20.6.9
port=9030
user=fengkong_read_only
passwd=mT2HFUgI
\ No newline at end of file
import os
from sqlalchemy import create_engine
import datetime
class sql_engine():
def __init__(self, db, db_name=None, echo=False):
"""
给出数据库名字,创建数据库连接
:param db:
:param db_name:
:param echo:
"""
try:
import Configparser
self.cf = Configparser.ConfigParser()
except:
import configparser
self.cf = configparser.ConfigParser()
self.cf.read(os.path.join(os.path.split(os.path.realpath(__file__))[0], 'mysql_config.ini'))
host = self.cf.get(db, 'host')
user = self.cf.get(db, 'user')
passwd = self.cf.get(db, 'passwd')
port = int(self.cf.get(db, 'port'))
if not db_name:
db_name = self.cf.get(db, 'db')
try:
self.__engine = create_engine(
'mysql+mysqldb://%s:%s@%s:%s/%s?charset=utf8' % (user, passwd, host, port, db_name), echo=echo,
connect_args={'connect_timeout': 3600})
except:
self.__engine = create_engine(
'mysql+pymysql://%s:%s@%s:%s/%s?charset=utf8' % (user, passwd, host, port, db_name), echo=echo,
connect_args={'connect_timeout': 3600})
def get_engine(self):
return self.__engine
if 'echo' not in vars():
echo = False
engine_feature = sql_engine('xyqb_feature', 'xyqb_rule').get_engine()
engine_risk = sql_engine('risk_info', 'risk_info').get_engine()
engine_analysis_new = sql_engine('analysis_new').get_engine()
engine_risk_analysis = sql_engine('risk_analysis').get_engine()
from pyplotz.pyplotz import PyplotZ from pyplotz.pyplotz import PyplotZ
from pyplotz.pyplotz import plt from pyplotz.pyplotz import plt
import seaborn as sns
plt.rc('figure',figsize=(8,6)) plt.rc('figure',figsize=(8,6))
...@@ -9,6 +9,55 @@ font_options={ ...@@ -9,6 +9,55 @@ font_options={
'size':'14' 'size':'14'
} }
plt.rc('font',**font_options) plt.rc('font',**font_options)
'''
双坐标轴
'''
def draw_lineplot_doubleaxes(df,x,y1,y2,y1_hue='',y2_hue='',title=''):
'''
:param df:
:param x:
:param y1:
:param y2:
:param y1_hue:y1 轴分类
:param y2_hue:y2 轴分类
:param title:
:return:
'''
def draw_barplot(df,x,y,hue='',title=''):
'''
:param df: dataframe
:param x: 横坐标
:param y: 纵坐标
:param hue: 分类
:param title:
:return:fig
'''
pltz = PyplotZ()
pltz.enable_chinese()
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
sns.set(style="whitegrid")
fig = plt.figure(figsize=(6, 4))
ax = fig.add_subplot(1, 1, 1)
if hue != '':
sns.barplot(x, y, hue=hue, data=df, ax=ax)
else:
sns.barplot(x, y, data=df, ax=ax)
pltz.xticks(range(len(df[x].unique().tolist())), df[x].unique().tolist())
pltz.xlabel(x)
pltz.ylabel(y)
pltz.title(title)
pltz.legend()
plt.grid()
plt.show()
return fig
def draw_lineplot(df,x,y,hue='',title=''): def draw_lineplot(df,x,y,hue='',title=''):
''' '''
:param df: dataframe :param df: dataframe
......
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