第二章 数据
前言
第一章介绍了建模的三要素,包括数据、特征、模型。一个好模型,需要在这三点反复推敲。
第二章分为三部分。第一部分告诉阐明如何获取数据,第二部分阐明如何选择合适的单客群样本,第三部分阐明如何挑选多客群样本。
本篇文章是第二章的第一部分,主要介绍利用Python从数据库(MySQL)获取数据,并把数据进行保存。当然,有数据的小伙伴可以跳过本文。
一、环境准备
相关环境包括Python3、MySQL;
集成工具包括Pycharm、Navicat;
万能工具Excel。
以下是安装教程,
Python:Python安装教程
MySQL:MySQL安装教程
Pycharm:Pycharm安装教程
Navicat:Navicat安装教程
二、连接数据库并获取数据
1.数据获取三步骤
代码如下(示例):
import pymysql
import pandas as pd
# 1.本地默认账户为localhost,user和password在安装数据库时由自己设置,database为数据库的名称
mydb = pymysql.connect(
host='',
user='',
password='',
database=''
)
# 2.sql_text为查询sql语句
sql_text = """
标准sql查询语句
"""
# 3.建立连接并读取数据
df = pd.read_sql(sql_text, mydb)
需要注意一点,企业一般会把数据分为特征表(x)和标签表(y),两张表可以通过身份证,姓名,手机号进行拼接。
所以,根据该原则,sql_text有两个,相应的也会生成两个dataframe,最后用pd.merge进行拼接。
2.数据整理
一份数据中如果存在多个客群,我们需要区分并分开存储,具体是什么原因,后续章节会给出答案。细心的伙伴也可以自己思考,模型的作用是什么?不同客群放在一起建模可能会有哪些影响。
代码如下(示例):
# df_y_x_date由特征表和标签表拼接而成;
# event_split_data_root + '/' +'{}.csv'.format(event) 是文件存储的路径,自定义即可
events = df_y_x_date['event_name'].unique().tolist()
for event in events:
df_y_x_date[df_y_x_date['event_name'] == event].to_csv(event_split_data_root + '/' + '{}.csv'.format(event),
index=False)
print("所有表拼接完成")
等待运行完成。
结果如上所示。
总结
本片文章分享的是如何从数据库获取数据,并自定义存储数据,但这距离开始建模还差一步。
下一篇文章会说明如何从各个客群中挑选合适的数据。