python打卡day6@浙大疏锦行

数据初步可视化

内容回顾:

  1. 单特征可视化:连续变量箱线图(还说了核密度直方图)、离散特征直方图
  2. 特征和标签关系可视化
  3. 箱线图美化--->直方图

作业:去针对其他特征绘制单特征图和特征和标签的关系图,并且试图观察出一些有意思的结论

找到连续特征

continuous_features = data.select_dtypes(include=['float64', 'int64']).columns.tolist()
continuous_features

结果

['Id',
 'Annual Income',
 'Tax Liens',
 'Number of Open Accounts',
 'Years of Credit History',
 'Maximum Open Credit',
 'Number of Credit Problems',
 'Months since last delinquent',
 'Bankruptcies',
 'Current Loan Amount',
 'Current Credit Balance',
 'Monthly Debt',
 'Credit Score',
 'Credit Default']

利用matplotlib库

import seaborn as sns 
import matplotlib.pyplot as plt 
import pandas as pd

绘制箱型线

sns.boxplot(x=data['Annual Income'])
plt.title('Annual Income 的箱线图')
plt.xlabel('年收入')
plt.show()

得到

若出现:
1. 下方有莫名其妙的警告
2. 中文字符显示不全

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
 
sns.boxplot(x=data['Annual Income'])
plt.title('Annual Income的箱线图')  
plt.xlabel('年收入')     
plt.show()

输出

绘制直方图

sns.histplot(data['Years in current job'])
plt.title('在当前工作年限 直方图')
plt.xlabel('在当前工作年限')
plt.ylabel('员工数量')
plt.show()

输出

X轴拥挤,进行调整,输入:

sns.histplot(x=data['Years in current job'])
plt.title('在当前工作年限 直方图')
plt.xlabel('在当前工作年限')
plt.ylabel('员工数量')
plt.xticks(rotation=45, ha='right')  
plt.tight_layout()  
plt.show()

输出:

绘制连续特证与标签的关系

可以分别考虑违约和不违约情况下的连续特征,画2个箱线图,输入:

plt.figure(figsize=(8, 6))
sns.boxplot(x='Credit Default', y='Annual Income', data=data)
plt.title('Annual Income vs. Credit Default')
plt.xlabel('Credit Default')
plt.ylabel('Annual Income')
plt.show()

输出:

相较于箱线图,小提琴图更加美观,输入:

plt.figure(figsize=(8, 6))
sns.violinplot(x='Credit Default', y='Annual Income', data=data)
plt.title('Annual Income vs. Credit Default')
plt.xlabel('Credit Default')
plt.ylabel('Annual Income')
plt.show()

但是实际上连续变量也可以绘制类似于直方图的图像,可以用核密度估计来完成边缘的柔和化,输入:

plt.figure(figsize=(8, 6))
sns.histplot(x='Annual Income', hue='Credit Default', data=data, kde=True, element="step")
plt.title('Annual Income vs. Credit Default')
plt.xlabel('Annual Income')
plt.ylabel('Count')
plt.show()

输出:

绘制离散变量和标签的关系

输入:

plt.figure(figsize=(8, 6))
sns.countplot(x='Number of Open Accounts', hue='Credit Default', data=data)
plt.title('Number of Open Accounts vs. Credit Default')
plt.xlabel('Number of Open Accounts')
plt.ylabel('Count')
plt.show()

输出:

可以看到 如果number of open accounts的值太多就会很散,不美观,所以这时候采取分组的措施,输入:

data['Open Accounts Group'] = pd.cut(data['Number of Open Accounts'], bins=[0, 5, 10, 15, 20, float('inf')], labels=['0-5', '6-10', '11-15', '16-20', '20+']) 
 
plt.figure(figsize=(10, 6))
sns.countplot(x='Open Accounts Group', hue='Credit Default', data=data)
plt.title('Number of Open Accounts (Grouped) vs. Credit Default')
plt.xlabel('Number of Open Accounts Group')
plt.ylabel('Count')
plt.show()

输出:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值