数据分析/数据科学Python常用代码块

换源_python

!pip insall package_name -i https://pypi.douban.com/simple/ 
#从指定镜像下载安装工具包,镜像URL可自行修改

模型服务

keras 部署服务

import tensorflow as tf
## freeze traiing session
def freeze_session(session, keep_var_names=None, output_names=None, clear_devices=True):## get session graphgraph = session.graphwith graph.as_default():## remove training related nodesfreeze_var_names = list(set(v.op.name for v in tf.global_variables()).difference(keep_var_names or []))output_names = output_names or []output_names += [v.op.name for v in tf.global_variables()]input_graph_def = graph.as_graph_def()## remove device info if trained on gpuif clear_devices:for node in input_graph_def.node:node.device = ""frozen_graph = tf.graph_util.convert_variables_to_constants(session, input_graph_def, output_names, freeze_var_names)return frozen_graphfrom keras import backend as K
frozen_graph = freeze_session(K.get_session(),output_names=[out.op.name for out in model.outputs])
tf.train.write_graph(frozen_graph, "./", "model.pb", as_text=False)

可部署为服务的 Python 脚本

__name__ = 'model'def func(input_object):## your code herereturn output_object

SQL操作

连接 PostgreSQL

import psycopg2
import pandas as pdconnection = psycopg2.connect(user = "username",password = "password",host = "127.0.0.1",port = "5432",database = "dn_name")
cursor = connection.cursor()test_query = """SELECT subject_id, hadm_id, admittime, dischtime, admission_type, diagnosis
FROM admissions
"""test = pd.read_sql_query(test_query, connection)

单表导出数据

### 从单表中获取数据
### 使用 WHERE 和 HAVING 语句进行过滤
### 用 order_by_list 字段进行降序排序
### conn 为 postgreSQL 的数据库连接对象
query_string = """SELECT [DISTINCT]  [AS ]
FROM 
WHERE  AND  OR 
HAVING 
ORDER BY  [DESC]
"""df = pd.read_sql_query(query_string, conn)

使用 WHERE 语句过滤

### 从单表中获取数据
### 使用 WHERE 语句进行过滤,包含了 IN 包含关系,和使用 LIKE 做模式匹配
### conn 为 postgreSQL 的数据库连接对象
query_string = """SELECT [DISTINCT]  [AS ]
FROM 
WHERE column_name [NOT] IN ( value_1, value_2, ...,value_n)
AND column_name BETWEEN value_1 AND value_2
OR column_name LIKE 'string'
"""df = pd.read_sql_query(query_string, conn)

使用 HAVING 语句过滤

### 从单表中获取数据
### 使用 HAVING 语句作过滤,包含聚合函数
### conn 为 postgreSQL 的数据库连接对象
query_string = """SELECT [DISTINCT]  [AS ]
FROM 
HAVING [aggregation function] = value_1
AND [aggregation_function] = value_2
"""df = pd.read_sql_query(query_string, conn)

取出前N条数据

### 从单表中获取数据
### 使用 WHERE 和 HAVING 语句进行过滤
### 用 order_by_list 字段进行降序排序
### 取出头部的N条数据
### conn 为 postgreSQL 的数据库连接对象
query_string = """SELECT [DISTINCT]  [AS ]
FROM 
WHERE  AND  OR 
HAVING 
ORDER BY  [DESC]
LIMIT 
"""df = pd.read_sql_query(query_string, conn)

多表导出数据

### 从多表中获取数据
### 使用 INNER JOIN 从两表中获取数据
### 使用 WHERE 和 HAVING 语句进行过滤
### conn 为 postgreSQL 的数据库连接对象
query_string = """SELECT [DISTINCT] 
FROM 
 JOIN 
ON   
WHERE 
HAVING 
ORDER BY  DESC
LIMIT 
"""df = pd.read_sql_query(query_string, conn)

使用聚合函数

### 从多表中获取数据
### 使用 INNER JOIN 从两表中获取数据
### 使用 WHERE 和 HAVING 语句进行过滤
### conn 为 postgreSQL 的数据库连接对象
query_string = """SELECT [aggregation function] ()
FROM 
 JOIN 
ON 
WHERE 
GROUP BY 
[HAVING ]
[ORDER BY ]
[LIMIT ]
"""df = pd.read_sql_query(query_string, conn)

使用 Subquery

### 如果SQL Query过长过复杂,可把Subquery的结果进行调用
### conn 为 postgreSQL 的数据库连接对象query_string = """--subquery作为一张表
SELECT  FROM ( SELECT  FROM table_name
) AS alias_table_name
"""
query_string_1 = """--subquery作为一系列值
SELECT  FROM 
WHERE  IN (SELECT  FROM  WHERE  
)
"""df = pd.read_sql_query(query_string, conn)

使用 WITH 语句

### 如果SQL Query过长过复杂,可以将子查询的结果定义为表变量在后期复用
### conn 为 postgreSQL 的数据库连接对象
query_string = """WITH table_variable_1 AS (