【大数据】机器学习 -----关于data.csv数据集分析案例

news2025/1/17 21:17:02

打开表

import  pandas  as  pd
df2 = pd.read_csv("data.csv",encoding="gbk")
df2.head()

查看数据属性(列标题,表形状,类型,行标题,值)

print("列标题:",df2.columns)

DataFrame表的形状,类型,行标题,值属性

print("表形状:",df2.shape)
print("类型:",df2.dtypes)
print("行标题:",df2.index)
print("值属性:",df2.values)

在这里插入图片描述

定性数据的分析

要求:统计每一类性别的人数

1.提取性别列

sex_v2 = df2["性别"]
sex_v2

2.统计男性人数

import  numpy  as  np   # 数据统计库
maleV2 = np.sum(sex_v2==1)
print("男性人数:",maleV2)

3.统计女性人数

femaleV2 = np.sum(sex_v2==0)
print("女性人数:",femaleV2)

在这里插入图片描述

将以上统计结果绘制成饼图

1.准备画布

import  matplotlib.pyplot  as  plt   # 绘图库
plt.rcParams["font.sans-serif"] = "SimHei"

2.准备数据

data = [maleV2,femaleV2]
dataLabel = ["男","女"]

3.绘制图形

plt.pie(data,labels=dataLabel)

4.保存和显示

plt.show()

在这里插入图片描述

统计不同性别的是否按期还款人数

useDF2 = df2.loc[:,["是否按期还款","性别"]]      # 取出源表的两列数据

seleDF2 = useDF2.loc[useDF2["性别"]==1,:]   # 取出性别为男的数据

统计不同性别的是否按期还款人数

useDF2 = df2.loc[:,["是否按期还款","性别"]]      # 取出源表的两列数据

seleDF2 = useDF2.loc[useDF2["性别"]==1,:]   # 取出性别为男的数据

提取男性中不能按期还款的人数

nopayDF2 = seleDF2.loc[seleDF2["是否按期还款"]==0,:]    # 男性中不能按期还款
payDF2 = seleDF2.loc[seleDF2["是否按期还款"]==1,:]    # 男性中能按期还款

在这里插入图片描述
在这里插入图片描述

import  pandas  as  pd
import  numpy  as  np
import  matplotlib.pyplot  as  plt   # 绘图库
plt.rcParams["font.sans-serif"] = "SimHei"

df2 = pd.read_csv("data.csv",encoding="gbk")

def  paydef(type_v2,vList):
    payDict = {}    # 用来存放不同的统计情况
    for i in range(len(vList)):
        # 统计不同性别的是否按期还款人数
        useDF2 = df2.loc[:,["是否按期还款",type_v2]]      # 取出源表的两列数据

        seleDF2 = useDF2.loc[useDF2[type_v2]==vList[i],:]   # 取出性别为男的数据

        # 提取男性中不能按期还款的人数
        nopayDF2 = seleDF2.loc[seleDF2["是否按期还款"]==0,:]    # 男性中不能按期还款
        payDF2 = seleDF2.loc[seleDF2["是否按期还款"]==1,:]    # 男性中能按期还款
        print(f"第{i+1}个统计结果:{nopayDF2.shape}")
        # 将统计结果放到字典中
        payDict[vList[i]] = [seleDF2.shape[0],payDF2.shape[0],
                             nopayDF2.shape[0],
                             payDF2.shape[0]/seleDF2.shape[0]]
        # print(payDict)
    return payDict
        
    
# 
def changedef(d2,d3):
    # 
    nDict = {}
    for k in d2.keys():
        nDict[d3[k]] = d2[k]
    
    return nDict

# 绘图函数 
def figdef(dataDict):
    # 1.准备画布
    plt.figure(figsize=(8,6),dpi=80)
    # 2.准备数据
    data = []
    dataLabel = []
    for k,v in dataDict.items():
        data.append(v[1])
        dataLabel.append(k)
    # 3.绘制图形
    plt.pie(data,labels=dataLabel)
    # 4.保存和显示
    plt.show()
# 主函数
def  main():
    
    type_v2 = input("请输入分类关键词:")
    # 学生完成:将已婚_未婚,已育_未育的数据添加到字典中
    typeDict = {"性别":{0:"女",1:"男"},"教育水平":{1:"高中及以下",2:"本科",3:"研究生",4:"研究生以上"},
                "英语水平":{1:"四级以下",2:"四级",3:"六级",4:"六级以上"},
               "已婚_未婚":{1:"已婚",2:"未婚"},
               "已育_未育":{1:"已育",2:"未育"}}
    # 统计性别的取值个数
    vList = np.unique(df2[type_v2])
    print(vList)
    # 调用统计函数
    payDict = paydef(type_v2,vList)
    nDict = changedef(payDict,typeDict[type_v2])
    print(nDict)
    figdef(nDict)

# 入口
if  __name__ == "__main__":
    main()

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

import  pandas  as  pd
import  numpy  as  np
import  matplotlib.pyplot  as  plt   # 绘图库
plt.rcParams["font.sans-serif"] = "SimHei"

df2 = pd.read_csv("data.csv",encoding="gbk")
df2.head()

在这里插入图片描述

定量数据分析–收入

incomeV2 = df2["收入"]

集中趋势(平均值,中位数,众数)

print("平均值:",incomeV2.mean())
print("中位数:",incomeV2.median())
print("众数:",incomeV2.mode())

分散程度(最大值,最小值,方差,标准差)

print("最小值:",incomeV2.min())
print("最大值:",incomeV2.max())
print("方差:",incomeV2.var())
print("标准差:",incomeV2.std())

在这里插入图片描述

处理异常值

1.提取异常值

f2 = p2["fliers"][0].get_ydata()
print(f2)

2.删除异常值

2-1:找到异常值对应的行索引

f_index = []      # 存放异常值,对应的行索引

for  i  in range(len(incomeV2)):
    if  incomeV2[i]   in  f2:
        f_index.append(incomeV2.index[i])

print(f_index)

2-2:使用命令drop删除异常值

clear_f_df2 = df2.drop(f_index,axis=0)
print("清除异常值后:",clear_f_df2.shape)

在这里插入图片描述

直方图

1.绘制画布

plt.figure(figsize=(8,6),dpi=80)

2.准备数据

data = incomeV2.values
labelV2 = ["收入"]

3.绘制图形

h2 = plt.hist(data,10)
plt.title("收入直方图")

4.显示图形

plt.show()
print(h2)

在这里插入图片描述

箱线图

1.绘制画布

plt.figure(figsize=(8,6),dpi=80)

2.准备数据

data = incomeV2.values
labelV2 = ["收入"]

3.绘制图形

p2 = plt.boxplot(data)
plt.title("收入箱线图")

4.显示图形

plt.show()
print(p2)

在这里插入图片描述

在这里插入图片描述

import  pandas  as  pd
import  numpy  as  np
import  matplotlib.pyplot  as  plt   # 绘图库
plt.rcParams["font.sans-serif"] = "SimHei"

df2 = pd.read_csv("data.csv",encoding="gbk")
df2.head()

# 函数1-直方图
def  histdef(ax,data):
    ax.hist(data,10)
    

# 函数2-箱线图
def  boxplotdef(ax,data):
    p2 = ax.boxplot(data)
    return p2

def clearFdef(p2):
    # 处理异常值
    # 1.提取异常值
    f2 = p2["fliers"][0].get_ydata()
    incomeV2 = df2["收入"]
    print(f2)
    # 2.删除异常值
    # 2-1:找到异常值对应的行索引
    f_index = []      # 存放异常值,对应的行索引
    for  i  in range(len(incomeV2)):
        if  incomeV2[i]   in  f2:
            f_index.append(incomeV2.index[i])

    print(f_index)

    # 2-2:使用命令drop删除异常值
    clear_f_df2 = df2.drop(f_index,axis=0)
    print("清除异常值后:",clear_f_df2.shape)
    return clear_f_df2

# 主函数
def  main():
    # 1.绘制画布
    fig = plt.figure(figsize=(12,10),dpi=80)
    # 2.分割画布
    # 图1
    ax1 = fig.add_subplot(2,2,1)
    data2 = df2["收入"]
    histdef(ax1,data2)
    plt.title("清洗前的收入直方图")
    
    # 图2
    ax2 = fig.add_subplot(2,2,2)
    p2 = boxplotdef(ax2,data2)
    clear_f_df2 = clearFdef(p2)
    plt.title("清洗前的收入箱线图")
    
    # 图3
    ax3 = fig.add_subplot(2,2,3)
    data3 = clear_f_df2["收入"]
    histdef(ax3,data3)
    plt.title("清洗前的收入箱线图")
    
    # 图4
    ax4 = fig.add_subplot(2,2,4)
    p3 = boxplotdef(ax4,data3)
    clear_f_df2 = clearFdef(p3)
    plt.title("清洗前的收入箱线图")

# 入口
if  __name__ == "__main__":
    main()

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2278157.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据可视化-12】数据分析岗位招聘分析

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…

RabbitMQ故障全解析:消费、消息及日常报错处理与集群修复

文章目录 前言:1 消费慢2 消息丢失3 消息重复消费4 日常报错及解决4.1 报错“error in config file “/etc/rabbitmq/rabbitmq.config” (none): no ending found”4.2 生产者发送消息报错4.3 浏览器打开IP地址,无法访问 RabbitMQ(白屏没有结…

网络安全——常用语及linux系统

一、网络安全概念及法规 网络安全:网络空间安全 cyber security 信息系统:由计算机硬件、网络和通信设备、计算机软件、信息资源、信息用户和规章制度组成的已处理信息流为目的的人机一体化系统 信息系统安全三要素(CIA) 保密…

00_专栏《Redis 7.x企业级开发实战教程》介绍

大家好,我是袁庭新。Redis作为一款高性能、多用途的内存数据库,凭借其丰富的数据结构、高速读写能力、原子操作特性及发布订阅等功能,在缓存加速、分布式锁、消息队列等场景中不可或缺,极大提升了系统性能与开发效率,是现代互联网应用架构的关键组件。 你是否在学习Redis…

深度学习中的卷积和反卷积(四)——卷积和反卷积的梯度

本系列已完结,全部文章地址为: 深度学习中的卷积和反卷积(一)——卷积的介绍 深度学习中的卷积和反卷积(二)——反卷积的介绍 深度学习中的卷积和反卷积(三)——卷积和反卷积的计算 …

SpringMVC Idea 搭建 部署war

1.创建 Idea项目 使用Maven模板 创建 webApp模板项目 2.导入依赖 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://ma…

ElasticSearch下

DSL查询 叶子查询&#xff1a;在特定字段里查询特定值&#xff0c;属于简单查询&#xff0c;很少单独使用复合查询&#xff1a;以逻辑方式组合多个叶子查询或更改叶子查询的行为方式 在查询后还可以对查询结果做处理&#xff1a; 排序&#xff1a;按照1个或多个字段做排序分页…

读取长文本,使用读取底表

文章目录 代码有原始数据内表作为主表连接STXL的示例获取物料分类获取物料分类的文本的宏读取分类 https://blog.csdn.net/DeveloperMrMeng/article/details/118354649 代码 "第三种&#xff1a;读取底表获取文本 DATA: LT_TLINE TYPE STANDARD TABLE OF TLINE. DATA: LS…

Ubuntu升级Linux内核教程

本文作者CVE-柠檬i: CVE-柠檬i-CSDN博客 本文使用的方法是dpkg安装&#xff0c;目前版本为5.4.0-204&#xff0c;要升级成5.8.5版本 下载 下载网站&#xff1a;https://kernel.ubuntu.com/mainline/ 在该网站下载deb包&#xff0c;选择自己想要升级的版本&#xff0c;这里是5…

JWT在线解密/解码 - 加菲工具

JWT在线解密/解码 首先进入加菲工具 选择 “JWT 在线解密/解码” https://www.orcc.online 或者直接进入JWT 在线解密/解码 https://www.orcc.online/tools/jwt 进入功能页面 使用 输入对应的jwt内容&#xff0c;点击解码按钮即可

如何查看特定版本的Spring源码

写在前面&#xff1a;大家好&#xff01;我是晴空๓。如果博客中有不足或者的错误的地方欢迎在评论区或者私信我指正&#xff0c;感谢大家的不吝赐教。我的唯一博客更新地址是&#xff1a;https://ac-fun.blog.csdn.net/。非常感谢大家的支持。一起加油&#xff0c;冲鸭&#x…

安全规约、脱敏规范、敏感逻辑的保护方案、防止 SQL 注入

文章目录 I 强制性安全规约对于文件上传功能,需要对于文件大小、类型进行严格检查和控制。平台资源的防重放机制URL 外部重定向传入的目标地址必须执行白名单过滤。表单、AJAX 提交必须执行 CSRF 安全验证。禁止向 HTML 页面输出未经安全过滤或未正确转义的用户数据。用户请求…

unity2022以上导出到AndroidStudio后更新步骤

1、unity里面Export出unityLibrary 2、导出apk&#xff0c;里面才包含libil2cpp(新版unity无法直接导出libil2cpp 3、注释AS项目app下的build.gradle里面包含unityLibrary的代码 4、注释AS项目settings.gradle包含unityLibrary的代码 5、删除AS项目里面的unityLibrary文件夹 6、…

LabVIEW串口通信调试与数据接收问题

在使用LabVIEW进行串口通信时&#xff0c;常常会遇到无法接收数据的情况。这可能与串口设置、连接、设备响应等多方面因素相关。本文将详细讨论如何使用LabVIEW进行串口通信&#xff0c;并提供常见问题的排查与解决方法&#xff0c;帮助用户更高效地进行数据接收调试。通过调整…

Java并发编程——线程池(基础,使用,拒绝策略,命名,提交方式,状态)

我是一个计算机专业研0的学生卡蒙Camel&#x1f42b;&#x1f42b;&#x1f42b;&#xff08;刚保研&#xff09; 记录每天学习过程&#xff08;主要学习Java、python、人工智能&#xff09;&#xff0c;总结知识点&#xff08;内容来自&#xff1a;自我总结网上借鉴&#xff0…

【HarmonyOS NEXT】鸿蒙跳转华为应用市场目标APP下载页

【HarmonyOS NEXT】鸿蒙跳转华为应用市场目标APP下载页 一、问题背景&#xff1a; 如今&#xff0c;大家都离不开各种手机应用。随着鸿蒙系统用户越来越多&#xff0c;大家都希望能在鸿蒙设备上快速找到想用的 APP。华为应用市场里有海量的 APP&#xff0c;但之前从鸿蒙设备进…

智能物流升级利器——SAIL-RK3576核心板AI边缘计算网关设计方案(一)

近年来&#xff0c;随着物流行业智能化和自动化水平不断提升&#xff0c;数据的实时处理与智能决策成为推动物流运输、仓储管理和配送优化的重要手段。传统的集中式云平台虽然具备强大计算能力&#xff0c;但高延迟和带宽限制往往制约了物流现场的即时响应。为此&#xff0c;我…

nacos环境搭建以及SpringCloudAlibaba脚手架启动环境映射开发程序

1&#xff1a;下载nacos 地址&#xff1a;https://github.com/alibaba/nacos/tags 2:选择server的zip包下载 3:启动mysql服务&#xff0c;新建数据库&#xff1a;nacos_yh 4&#xff1a;解压下载的nacos_server 进入conf目录 5&#xff1a;mysql运行sql脚本变得到下面的表 6&a…

Java中线程的学习

目录​​​​​​​ 程序,进程,线程 创建线程 继承Thread类 实现Runnable接口 Thread类中方法 线程优先级 线程状态 多线程的概念 线程同步 在Java代码中实现同步 以下代码使用继承Thread方式实现 以下代码使用实现Runnable方式实现 Lock&#xff08;锁&#xf…

HTTP/HTTPS ⑤-CA证书 || 中间人攻击 || SSL/TLS

这里是Themberfue ✨上节课我们聊到了对称加密和非对称加密&#xff0c;实际上&#xff0c;单纯地非对称加密并不能保证数据不被窃取&#xff0c;我们还需要一个更加重要的东西——证书 中间人攻击 通过非对称加密生成私钥priKey和公钥pubKey用来加密对称加密生成的密钥&…