文章目录

  • 一、数据集
  • 二、实现
    • 导包和准备工作
    • 1、查看数据类型、表结构、统计各字段缺失值个数
    • 2、删除所有全为空的列及身份证号为空的数据
    • 3、将“开始从事某工作年份”规范为4位数字年份,如’2008‘,并将列名修改为’参加工作时间‘
    • 4、添加列’工龄‘(体检年份-参加工作时间)和’年龄‘(体检时间-出生年份)两列。
    • 5、统计不同性别的白细胞计数均值,画出柱状图
    • 6、统计不同年龄段的白细胞计数,画出柱状图
  • 三、完整代码

一、数据集

数据集:资料,提取码:hp4i

二、实现

导包和准备工作

# -*- coding: utf-8 -*
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib# 导入数据集
df = pd.read_excel('testdata.xls')
# 设置中文字体
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
matplotlib.rcParams['font.family'] = 'sans-serif'

1、查看数据类型、表结构、统计各字段缺失值个数

print(df.dtypes)
print(df.info())
df.isna().sum()


2、删除所有全为空的列及身份证号为空的数据

# 观察缺失值 发现细胞其它值是空列
del df['细胞其它值']
df.dropna(subset=['身份证号'],inplace=True)
df.isna().sum()

3、将“开始从事某工作年份”规范为4位数字年份,如’2008‘,并将列名修改为’参加工作时间‘

def trans(x):y=str(x).strip()[0:4]# 有个很坑的数据 年份是个小数 也要去掉if float(y)>=1000:return int(y)
df.rename(columns={'开始从事某工作年份':'参加工作时间'},inplace=True)
df.dropna(subset=['参加工作时间'],inplace=True)
df['参加工作时间']=df['参加工作时间'].apply(lambda x:trans(x))

4、添加列’工龄‘(体检年份-参加工作时间)和’年龄‘(体检时间-出生年份)两列。

df.dropna(subset=['体检年份'],inplace=True)
df.dropna(subset=['身份证号'],inplace=True)
df['体检年份']=df['体检年份'].apply(lambda x:int(str(x)[0:4]))
df['工龄']=df['体检年份']-df['参加工作时间']
df['年龄']=df['体检年份']-df['身份证号'].apply(lambda x:int(str(x)[4:8]))

5、统计不同性别的白细胞计数均值,画出柱状图

df.groupby('性别')['白细胞计数'].mean().plot.bar()
plt.show()

6、统计不同年龄段的白细胞计数,画出柱状图

def accu(x):if x<=30: return '小于等于30'elif x>30 and x<=40: return '大于30,小于40'elif x>40 and x<=50: return '大于40,小于50'else: return '大于50'
df['年龄段']=df.apply(lambda x:accu(x['年龄']),axis=1)
df.groupby('年龄段')['白细胞计数'].mean().plot.bar()
plt.show()

三、完整代码

# -*- coding: utf-8 -*
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib# 导入数据集
df = pd.read_excel('testdata.xls')
# 设置中文字体
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
matplotlib.rcParams['font.family'] = 'sans-serif' # A
print(df.dtypes)
print(df.info())
df.isna().sum()# B
del df['细胞其它值']
df.dropna(subset=['身份证号'],inplace=True)
df.isna().sum()
# c
def trans(x):y=str(x).strip()[0:4]if float(y)>=1000:return int(y)
df.rename(columns={'开始从事某工作年份':'参加工作时间'},inplace=True)
df.dropna(subset=['参加工作时间'],inplace=True)
df['参加工作时间']=df['参加工作时间'].apply(lambda x:trans(x))
# d
df.dropna(subset=['体检年份'],inplace=True)
df.dropna(subset=['身份证号'],inplace=True)
df['体检年份']=df['体检年份'].apply(lambda x:int(str(x)[0:4]))
df['工龄']=df['体检年份']-df['参加工作时间']
df['年龄']=df['体检年份']-df['身份证号'].apply(lambda x:int(str(x)[4:8]))
# e
df.groupby('性别')['白细胞计数'].mean().plot.bar()
plt.show()
# f
def accu(x):if x<=30: return '小于等于30'elif x>30 and x<=40: return '大于30,小于40'elif x>40 and x<=50: return '大于40,小于50'else: return '大于50' df['年龄段']=df.apply(lambda x:accu(x['年龄']),axis=1)
df.groupby('年龄段')['白细胞计数'].mean().plot.bar()
plt.show()

【pandas】testdata数据集分析相关推荐

  1. L:python的Pandas模块:实例练习(泰坦尼克号数据集分析,电影票房统计,股票基本面统计)

    实例练习 泰坦尼克号数据集分析 使用Seaborn库中包含的titanic数据集进行一些数据统计. Seaborn是一个图形库,Anaconda已包含此库.数据集参见: https://github. ...

  2. 五十三、爱彼迎数据集分析建模

    爱彼迎数据集分析建模为本专栏的Python数据分析案例. 因为文件比较大,所以保存了百度云 链接:https://pan.baidu.com/s/1geUgsLejvpTKgBmcSMSIdQ 提取码 ...

  3. 阿里天池:Airbnb短租房数据集分析

    阿里天池:Airbnb短租数据集分析 1.项目介绍 2.字段介绍 3.分析目的和思路 4.模块导入与数据读取 5.探索性分析 (一)整体分析 (二)按区域划分 (三)按房型划分 1.项目介绍 数据来源 ...

  4. sklearn基础篇(三)-- 鸢尾花(iris)数据集分析和分类

    后面对Sklearn的学习主要以<Python机器学习基础教程>和<机器学习实战基于scikit-learn和tensorflow>,两本互为补充进行学习,下面是开篇的学习内容 ...

  5. pandas获取数据集数据类型分布(更细粒度的分割)

    方法一:使用pandas内置接口 在pandas中,获取数据类型有几个方法,以泰坦尼克号数据集为例, 1.拿到numerical数据类型 df.select_dtypes('number').colu ...

  6. NBA球星生涯数据集分析

    源码链接: https://download.csdn.net/download/qq_58012062/87541713?spm=1001.2014.3001.5501 数据提取:链接:https: ...

  7. Kaggle PUBG吃鸡数据集--数据分析可视化PUBG数据集分析报告

    PUBG数据集分析报告 数据集分为两个部分 数据集1: agg数据: 15 字段 date: 时间 game_size:队伍数量 match_id:比赛 match_mode: 对局模式(第一人称还是 ...

  8. 数据分析案例--红酒数据集分析

    介绍: 这篇文章主分析了红酒的通用数据集,这个数据集一共有1600个样本,11个红酒的理化性质,以及红酒的品质(评分从0到10).这里主要用python进行分析,主要内容分为:单变量,双变量,和多变量 ...

  9. 红酒数据集分析【详细版】

    红酒数据集分析[详细版] 原文链接:阿里云天池 数据连接:链接:https://pan.baidu.com/s/1UpVkbgOEIjpc_GQTGHyqTQ 提取码:ztjs 介绍 这个notebo ...

最新文章

  1. windows server服务器上部署java+tomcat网站域名配置
  2. rstudio 关联r_使用关联规则提出建议(R编程)
  3. java遍历子目录_Java遍历文件夹及子目录代码实例
  4. C# 值类型 引用类型 作为参数传递区别
  5. 【Elasticsearch】es keywods 类型数据 写入后查询不到
  6. android service 构造函数,Android IntentService无法实例化类;没有空构造函数
  7. c#自带压缩类实现数据库表导出到CSV压缩文件的方法
  8. 开启“互联网+”模式打造智能移动APP巡检系统
  9. CxImage功能强大的图形处理程序
  10. WOL(Wake On LAN - 局域网唤醒)外网唤醒 配置教程 远程开机
  11. TCP-IP详解:SACK选项(Selective Acknowledgment)
  12. The signing key‘s size is 1024 bits which is not secure enough for the RS256 algorithm.
  13. 趣图:看到网友晒了新抱枕,我也想换个新的了
  14. mysql分列查询,SQL计算符合条件行数量,并分列显示,怎么做
  15. GWAS研究和多基因评分
  16. Deploy k8s(1.25)
  17. java基础类型判空_java基础类型判空
  18. Cannot add property xxx, object is not extensible
  19. 《JavaSE-第二章》之基本数据类型与类型转换
  20. 什么是日志审计系统?性价比较高的日志审计系统有哪些?

热门文章

  1. 所谓的“人口红利”是什么?白话理解
  2. 基于JAVA在线民宿预定系统计算机毕业设计源码+系统+lw文档+部署
  3. 两个list进行合并
  4. USACO fact4, spin
  5. 数字图像处理第十一章——表达与描述
  6. LeetCode第 1143 题:最长公共子序列(C++)
  7. rsa算法欧拉函数c语言,三、欧拉函数
  8. color颜色对应的数字
  9. 怎么做好团队代码review
  10. 改善简历的47条原则