文章目录

  • 一、数据集
  • 二、实现
    • 导包和准备工作
    • 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. 干货 | 谷歌BERT模型fine-tune终极实践教程
  2. 动态卷积超进化!通道融合替换注意力,减少75%参数量且性能显著提升 ICLR 2021...
  3. 几经沉浮,自乱前程——硬盘巨头启示录之迈拓篇
  4. 在使用chrome调试angular2的时候出现下面问题
  5. 【机器视觉】 comment算子
  6. JWT令牌的秘密轮换
  7. htc g7 android 4.4,HTC G7刷机,从WM手机刷到了安卓,开启了新的刷机体验....
  8. Can you answer these queries II
  9. 如何把服务器系统克隆出来,一次Win2003服务器下的完全克隆 -电脑资料
  10. 如何在10亿个数中找到前1000大的数?
  11. Oracle解决Ora-01653无法扩展表空间问题
  12. Cache基本原理之:结构
  13. android viewpager实现画廊效果,ViewPager实现2D、3D画廊效果
  14. 我对“心即理,致良知,知行合一”和《王阳明四句教》的的理解。
  15. 图集压缩格式设置ASTC不生效的原因
  16. vscode 突然无法切换输入法(切换中文输入法)
  17. .net6智能提示设置为中文
  18. 树及树的算法(4) —— 红黑树
  19. Walmart API 授权流程解析
  20. CSDN自定义模块高级设置之(2)——设置主页左则及详情页背景(打造节日气氛)

热门文章

  1. c++实现数组数字向右向左移动
  2. 洛古——P1433 吃奶酪
  3. gcc或者clang输出typeid(typename).name()的全称
  4. 获取到小程序全局唯一的 App 实例(getApp()获取)
  5. Ae 脚本:Face Tools 4 脸部工具
  6. 【uniapp】sigmob广告加载失败:-5005、500422没有imei的解决办法(原创可用)
  7. Matlab 原始高斯消去法函数
  8. mixin机制 vue_谈谈vue中mixin的一点理解
  9. java算法:判断一个五位数是不是回文数
  10. Android 融云IM集成以及使用详解(二)