python+mysql 进行变量衍生

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jin_tmac/article/details/80064712

我们在建模时,需要对原始数据进行处理包括缺失值、变量衍生等操作。尤其是变量衍生,完全用Python有一定的难度。我之前的做法是将原始数据导入sas,所有的前期变量清洗、衍生操作全部都在sas里完成。现在想着如何在没有sas的情况下进行数据处理。于是就有了python+mysql:将数据导入mysql,所有的变量处理操作都在navicat进行,生成许多衍生变量表,pandas直接连接自定义的数据库。

具体过程如下:
1、安装mysql:我用的是5.7版本,直接官网下载,参考安装教程。另外安装的时候遇到require .net framework错误,在官网上下载安装就行。
2、安装navicat:数据库管理工具,网上搜索破解版本的,很好安装。
3、pymysql:用anaconda安装即可。

具体应用如下:

import pandas as pd
import pymysql

#查询中含有中文时需加入use_unicode=True, charset="utf8"。

conn = pymysql.connect(host='localhost',port=3306,user='root',passwd='*****',db='tianchi_data',use_unicode=True, charset="utf8")

sql = 'select * from test1'

df = pd.read_sql(sql, con=conn)

a.close()

/——————————–补充的分界线————————————/
在用mysql创建数据库时,会越到中文字符无法插入数据库创建不成功的情况,此时加上CREATE DATABASE `database` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; ,其中那个字符是esc下面那个,非单引号,是一个转义字符;
DEFAULT CHARACTER SET utf8:数据库字符集。设置数据库的默认编码为utf8,这里utf8中间不要”-“;
COLLATE utf8_general_ci:数据库校对规则。

参考:
1、mysql

猜你喜欢

转载自blog.csdn.net/jin_tmac/article/details/80064712