Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
model_mvp
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
decision-science
model_mvp
Commits
9f42261f
Commit
9f42261f
authored
Apr 08, 2019
by
linfang.wang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
加入MySQL 连接
parent
e1f75aa1
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
127 additions
and
5 deletions
+127
-5
datacal.py
data/analyis/datacal.py
+3
-4
mysql_config.ini
data/datasource/mysql_config.ini
+27
-0
mysqldb.py
data/datasource/mysqldb.py
+47
-0
drawplot.py
data/graph/drawplot.py
+50
-1
No files found.
data/analyis/datacal.py
View file @
9f42261f
...
@@ -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
)
...
...
data/datasource/mysql_config.ini
0 → 100644
View file @
9f42261f
[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
data/datasource/mysqldb.py
0 → 100644
View file @
9f42261f
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
()
data/graph/drawplot.py
View file @
9f42261f
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
...
...
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