银行营销数据的Python数据分析--连接SQLserver

一共有4万多条数据,来自著名的machine learning网站UCI,数据集名称是bank marketing,应该很好搜到
数据是这样的4个文件,分别是个人信息、营销信息、社会经济情况和最终结果,我把导入到SQLserver中
在这里插入图片描述
每个文件都有一个id变量,是每个银行用户独一无二的标识,我把它设置为了主键
在这里插入图片描述
接下来用Python连接SQLserver读取数据,代码如下

pip install pymssql
import pymssql
connect = pymssql.connect('(local)', 'sa', '密码', '要访问的数据库名称')
cursor = connect.cursor() 
cursor.execute("select*from bank_additional")  

我先在数据库里合成了这四个文件为一个bank_additional,其实也可以直接Python写SQL语句合成,用到join on

data = cursor.fetchall()

这样数据就成功从SQLserver读取到了Python,但是这是数组文件,为便于后续分析我把转化为了dataframe

import pandas as pd
data=pd.DataFrame(data,columns=[.....])

接下来就可以基于data做数据分析了

在这里插入图片描述

import pandas as pd
import numpy as np
import random
import warnings
warnings.filterwarnings("ignore")
import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.model_selection import GridSearchCV

首先画出出各个分类型变量的分布情况:

categorcial_variables = ['job', 'marital', 'education', 'default', 'loan', 'contact', 'month', 'day_of_week', 'poutcome','y']
for element in categorcial_variables:
    plt.figure(figsize=(10,4))
    sns.barplot(data[element].value_counts().values, data[element].value_counts().index)
    plt.title(element)

然后是各个分类型变量与y的关系

  for ele in categorcial_variables:
    pd.crosstab(data[ele],data['y']).plot.bar()

这里其实变量Default,education, job, housing,loan等是存在缺失值unknown的,但是考虑到这是因为受访者不愿意透露自己的真实情况,对结果也是有一定影响的,因此处理方式是将unknown作为一个单独的取值

好了,下面是对数值型数据的简单描述

numerical_variables = ['age','campaign', 'pdays', 'previous', 'emp.var.rate', 'cons.price.idx','cons.conf.idx','euribor3m', 'nr.employed']
data[numerical_variables].describe()

在这里插入图片描述
同样数值型变量的‘pdays’也存在缺失值,用999表示,注意到
在这里插入图片描述
几乎所有pdays的缺失值,另一变量poutcome的取值都是noexist,zhe很好理解,由于之前没有做过营销,因此数据不存在,过去的营销结果自然是noexist,所以变量pdays的信息可以被poucome替代,所以简单删除这一变量即可。
下面对所有的分类型变量进行0-1编码,使他们成为新的0-1变量,做出新的变量之间的相关系数图

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,你想了解银行营销数据分析Python+k-means实现方法,是吗? 首先,K-means是一种聚类算法,可以将数据样本划分为K个不同的类别。在银行营销数据分析中,可以使用K-means来识别客户群体,以便更好地定位和营销。 以下是使用Python和K-means实现银行营销数据分析的一些步骤: 1. 导入所需的库和数据集,例如pandas、numpy和sklearn。 ``` import pandas as pd import numpy as np from sklearn.cluster import KMeans ``` 2. 加载数据集并进行必要的数据预处理,例如删除缺失值、转换数据类型等。 ``` data = pd.read_csv('bank_marketing.csv') data.dropna(inplace=True) data['age'] = data['age'].astype('int64') ``` 3. 选择需要用于聚类的特征,并进行必要的数据标准化。 ``` X = data[['age', 'balance', 'duration']] X = (X - X.mean()) / X.std() ``` 4. 创建K-means模型并训练模型。 ``` kmeans = KMeans(n_clusters=3, random_state=0) kmeans.fit(X) ``` 5. 使用模型对数据进行分类,并将结果添加到原始数据集中。 ``` data['cluster'] = kmeans.labels_ ``` 6. 可视化聚类结果,例如使用散点图。 ``` import matplotlib.pyplot as plt plt.scatter(data['balance'], data['duration'], c=data['cluster']) plt.xlabel('Balance') plt.ylabel('Duration') plt.show() ``` 这些步骤可以帮助你使用Python和K-means实现银行营销数据分析。当然,在实际应用中可能需要更多的数据处理和模型优化等步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值