首页 > 数据库 >MySQL的连接和导出数据分析和lift曲线

MySQL的连接和导出数据分析和lift曲线

时间:2023-08-28 20:11:39浏览次数:48  
标签:数据分析 pre target lift MySQL apply cum data bins

MySQL 的 连接和使用

https://www.cnblogs.com/zdstudy/p/16567399.html mysql使用网址
https://blog.csdn.net/LikiLyn/article/details/120385981 多个文件merge

import pandas as pd
import numpy as np
import pymysql
#%%打开数据库连接
conn = pymysql.connect(host='地址',user = "用户",passwd = "密码",\
db = "数据库")

sql1 = '''
'''

sql_data1 = pd.read_sql_query(sql1,conn)



import pymysql
conn = pymysql.connect(host="地址",port=3306,user="用户",password="密码",database="数据库")
cursor = conn.cursor()
sqls1 = "drop table if exists "
cursor.execute(sqls1)
cursor.close()
conn.close()


import pymysql
import pandas as pd
from sqlalchemy import create_engine
conn = pymysql.connect(host='地址',user = "用户",passwd = "密码",\
db = "数据库")
#读取数据
#建立连接,username替换为用户名,passwd替换为密码,test替换为数据库名
conn = create_engine('mysql+pymysql://用户:密码@地址:端口/数据库',encoding='utf8')
#写入数据,table_name为表名,‘replace’表示如果同名表存在就替换掉
cddyx.to_sql("", conn, if_exists='replace', index=False)

import toad
import scorecardpy as sc

str(x).strip()

toad.detector.detect()

toad.metrics.KS_bucket(x,y,bucket=10,method = 'quantile')


bins = sc.woebin(y2, y="target")#y2是数据,里面的目标列用target
sc.woebin_plot(bins)

breaks_adj = {'xy':[1,2,3,4]}
bins_adj = sc.woebin(y2, y="target",breaks_list=breaks_adj)
sc.woebin_plot(bins_adj)

bins_result= pd.DataFrame()
for value in bins.values():
bins_result=bins_result.append(value)
bins_result.to_excel("IV.xlsx")

注意列名为数字 去掉空格 target为数值

from functools import reduce
dfs = [x2, x3, x4]
df = reduce(lambda x, y: pd.merge(x, y, on=["phone",'id','name'], how="inner"), dfs)
df

result1=pd.DataFrame()
for j in Y.columns:
result=toad.metrics.KS_bucket(Y[j],Y['target'],bucket=10,method='quantile').sort_index()
result['变量名']=j
result1=result1.append(result)

画lift曲线

target=np.array([1,0,1,0,1,1,1,0,0,1,1,0,1,0,1,1,1,0,0,1])
y_pre=np.random.rand(20)
y_pre

def lift(target,y_pre):
data=pd.DataFrame({'target':target,'y_pre':y_pre})
data['y_pre']=pd.qcut(data['y_pre'],q=[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1])
data=data.groupby('y_pre').sum().reset_index()
data['apply']=1
data['cum_bad']=data['target'].cumsum()
data['cum_apply']=data['apply'].cumsum()
data['bad_total']=data['target'].sum()
data['apply_total']=data['apply'].sum()
data['cum_bad_rate']=data['cum_bad']/data['bad_total']
data['cum_apply_rate']=data['cum_apply']/data['apply_total']
data['lift']=data['cum_bad_rate']/data['cum_apply_rate']
return np.array(data['lift'])

标签:数据分析,pre,target,lift,MySQL,apply,cum,data,bins
From: https://www.cnblogs.com/chenqianguan/p/17663283.html

相关文章

  • mysql日志追踪 / 数据恢复
    1.查看日志开启状态showvariableslike'log_%';2.查看日志文件列表showbinarylogs;或者showmasterlogs;3.查看当前日志index位置showmasterstatus;4.查看binlog关键事件showbinlogevents[IN'log_name'][FROMpos][LIMIT[offset,]row_c......
  • MySQL online DDl原理
    onlineDDL从5.6开始,不阻塞DML但是会阻塞所有的DDL,online有三种模式:INSTANT(8.0.12),INPLACE(rebuild),INPLACE(no-rebuild),具体操作如下:1、只修改表的元数据信息删除二级索引修改索引名(5.7)修改字段名设置(删除)字段的默认值增加varchar长度,如果表示字符串长度的字节数变化则会使用c......
  • 《MySQL命令行客户端》的使用方法
    MySQL客户端连接工具有多种,但最常用的是MySQL命令行客户端。下面是MySQL命令行客户端的语法:mysql-hhostname-uusername-ppassword-Ddatabase_name其中:-h 参数指定要连接的MySQL服务器的主机名或IP地址。-u 参数指定要连接的MySQL服务器的用户名。-p 参数提示输......
  • MySqlBulkCopy 批量新增数据
    MySqlConnector有个MySqlBulkCopy批量新增数据方法,不过只能用DataTable,需要把list转成DataTable代码如下:MySqlBulkCopymySqlBulkCopy=newMySqlBulkCopy(conn){DestinationTableName="userinfo"};mySqlBulkCopy.ColumnMappings.AddRange(table.Columns.Cast<DataC......
  • 无法对表进行任何操作了,mysql
    现象:无法对表进行任何操作,比如truncatetable,比如select,一直处于等待状态。看起来像是表被锁了。 解决过程:1.查询占用中的查询:showOPENTABLESwhereIn_use>0;结果是0行数据,表明没有任何查询在占用。2.查询当前的所有事务select*frominformation_schema.in......
  • MySQL 8.0字符集校正
    MySQL升级为8.0版本时,之前版本的字符集往往是不同的,需要校正。执行下面的三个SQL语句的查询结果,可以从库、表、列三个层面对字符集进行校正。库selectconcat('alterdatabase',schema_name,'defaultcharactersetutf8mb4collateutf8mb4_general_ci;')frominform......
  • dapper mysql 批量新增修改
    dapper是C#程序员比较喜欢用的轻量级ORM,简单易学,只是没有批量新增以及修改(收费版有),写了如下扩展///<summary>///dapperMySQL批量新增修改扩展///</summary>publicstaticclassDapperExtensions{///<summary>///批量插入......
  • 使用MySQL命令行新建用户并授予权限的方法
    MySQL命令行能否实现新建用户呢?答案无疑是肯定的。而且在使用使用MySQL命令行新建用户后,还可以为用户授予权限。首先要声明一下:一般情况下,修改MySQL密码,授权,是需要有mysql里的root权限的。注:本操作是在WIN命令提示符下,phpMyAdmin同样适用。用户:phplamp用户数据库:phplampDB1.......
  • Linux下MySql开放访问权限
    在Linux下安装完数据库后,局域网内无法访问。 设置方法:1.停止mysql,进入/etc/mysql/,编辑my.cnf,找到bind-address的配置,改为0.0.0.0,然后启动mysql2.登录mysql,进入mysql数据库,执行updateusersethost='%'wherehost='127.0.0.1'anduser='root',执行完成后再使用命令flushprivileg......
  • ubuntu上mysql的安装以及基本用法
    1.使用apt-get查找当前可用的mysql版本.apt-cachesearchmysql返回的结果集为: 2.通过结果集找到最新可用的服务端是mysql-server,安装mysql-serversudoapt-getinstallmysql-server 按提示安装即可(中间会提示设置root口令)。3.测试是否安装正确#登录mysql-uroot-p出现以下......