当前位置: 首页 > news >正文

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

打开表

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 p2def 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.分割画布# 图1ax1 = fig.add_subplot(2,2,1)data2 = df2["收入"]histdef(ax1,data2)plt.title("清洗前的收入直方图")# 图2ax2 = fig.add_subplot(2,2,2)p2 = boxplotdef(ax2,data2)clear_f_df2 = clearFdef(p2)plt.title("清洗前的收入箱线图")# 图3ax3 = fig.add_subplot(2,2,3)data3 = clear_f_df2["收入"]histdef(ax3,data3)plt.title("清洗前的收入箱线图")# 图4ax4 = fig.add_subplot(2,2,4)p3 = boxplotdef(ax4,data3)clear_f_df2 = clearFdef(p3)plt.title("清洗前的收入箱线图")# 入口
if  __name__ == "__main__":main()

在这里插入图片描述

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

http://www.lryc.cn/news/520346.html

相关文章:

  • 深入解析 C++ 类型转换
  • C++ union 联合(八股总结)
  • 聊聊AI Agent
  • scala代码打包配置(maven)
  • 慧集通(DataLinkX)iPaaS集成平台-业务建模之业务对象(二)
  • C++使用minio-cpp库在minio中创建bucket
  • 【大模型】大语言模型的数据准备:构建高质量训练数据的关键指南
  • 【解决】okhttp的java.lang.IllegalStateException: closed错误
  • TCP-IP详解卷 TCP的超时与重传
  • Linux服务器查看【可用端口号连接】的命令和方式【netstat,ss,lsof】
  • 【WPS】【WORDEXCEL】【VB】实现微软WORD自动更正的效果
  • Attention计算中的各个矩阵的维度都是如何一步步变化的?
  • 【数模学习笔记】插值算法和拟合算法
  • 探索 C++ 与 LibUSB:开启 USB 设备交互的奇幻之旅
  • 二、模型训练与优化(4):模型优化-实操
  • 3D可视化产品定制,应用于哪些行业领域?
  • Avalonia 入门笔记(零):概述
  • Unity TextMesh Pro入门
  • [论文阅读] (35)TIFS24 MEGR-APT:基于攻击表示学习的高效内存APT猎杀系统
  • 12 USART串口通讯
  • CF 368A.Sereja and Coat Rack(Java实现)
  • 清华大学、字节跳动等单位联合发布最新视觉语言动作模型RoboVLMs
  • 网络安全、Web安全、渗透测试之笔经面经总结
  • .NET Core NPOI 导出图片到Excel指定单元格并自适应宽度
  • python bs4 selenium 查找a href=javascript:();的实际点击事件和url
  • 三 BH1750 光感驱动调试1
  • UE材质节点Fresnel
  • linux的大内核锁与顺序锁
  • 用户注册模块用户校验(头条项目-05)
  • 面向对象的基本概念