首页 > 编程语言 >python数据挖掘实验一:数据分析及可视化应用

python数据挖掘实验一:数据分析及可视化应用

时间:2024-03-24 22:31:05浏览次数:15  
标签:count python print Ojob df 可视化 数据挖掘 display Mjob

1.导入pandas包

import pandas as pd

2.根据给定的原始数据集创建一个DataFrame类型对象df

data={
    'id':[10001,10002,10003,10004,10005,10006,10007,10008,10009,10010],
    'name':['LY','CE','ZS','LS','WU','ZL','SQ','ZB','WJ','ZS'],
    'sex':['F','M','M','F','F','F','M','F','M','M'],
    'age':[18,20,36,47,13,25,32,45,13,16],
    'address':['California','Texas','Florida','California','Texas','Florida','California','Florida','Texas','Texas'],
    'Mjob':['at_home','services','at_home','services','student','at_home','teacher','health','student','student'],
    'Ojob':['health','teacher','teacher','health','other','teacher','health','health','other','at_home']
}
#columns=['id','name','sex','age','address','Mjob','Ojob'],列标签
df=pd.DataFrame(data,columns=['id','name','sex','age','address','Mjob','Ojob'])

3.查看df

display(df)

4.查看df前5行和后5行

#方法一
print("前五行数据为:\n",df[:5])#左闭右开
print("后五行数据为:\n",df[5:])
#方法二
print("前五行数据为:\n",df.head())#head(n),n不写时默认获取前5行,n为具体数据时则为获取前n行
print("后五行数据为:\n",df.tail())#tail(n),n不写时默认获取后5行,n为具体数据时则为获取后n行

 

5.查看行和列的索引值

print("行的索引值为:",df.index)
print("列的索引值为:",df.columns)

 6.分别查看name、sex列的值

print("name列的值:\n",df['name'])
print("sex列的值:\n",df['sex'])

 7.同时查看name和sex列的值

#方法一
display(df.loc[:,['name','sex']])
#方法二
display(df.iloc[:,[1,2]])

8.连续切片,取0-5行、0-5列、左闭右开的所有数据

display(df.iloc[0:5,0:5])

9.筛选出第2-5行的第1、3、5列的所有数据

display(df.iloc[1:5,[1,3,5]])

10.分别筛选出Mjob列值不为”student”和值为“student”的所有数据

display(df[df['Mjob']=='student'])
display(df[df['Mjob']!='student'])

11.定义函数gender_count,对性别进行标识,M用1表示,F用0表示

def gender_count(x):
     if x=='M':
         return 1
     else:
         return 0
count=df['sex'].apply(gender_count)

12.df增加一列gender_n,调用函数gender_count对性别进行标识

df.insert(loc=3,column="gender_n",value=count[:])
display(df)

13.按Mjob分类,求每一种职业男性的占比

a = df.groupby(['Mjob']).gender_n.sum()/df['Mjob'].value_counts()*100
print(a)

14.将占比值从高到低的顺序排列

a2=a.sort_values(ascending=False)
print(a2)

15.求Mjob列不同值的个数

print(df.groupby('Mjob')['Mjob'].count())

16.获取每种职业对应的最大和最小的用户年龄

print("每种职业的最小用户年龄:\n",df.groupby(['Mjob','Ojob'])['age'].min())
print("每种职业的最大用户年龄:\n",df.groupby(['Mjob','Ojob'])['age'].max())

17.删除最后一列gender_n(就地修改)

df.drop(columns='gender_n',inplace=True)
display(df)

18.将数据列Mjob和Ojob中的所有数据实现首字母大写

for col in ['Mjob','Ojob']:
     df[col]=df[col].str.title()
display(df.loc[:,['Mjob','Ojob']])

19.设定id列为行索引

display(df.set_index('id'))

20.使用直方图可视化不同年龄段区间[10,20,30,40,50]的人数

21.使用饼形图可视化不同类Mjob人员的占比

import matplotlib.pyplot as plt
import numpy as np
mjob=np.array(df.groupby('Mjob')['Mjob'].count().index)
num=np.array(df.groupby('Mjob')['Mjob'].count()[:])
plt.pie(num,labels=mjob,autopct='%1.0f%%')
plt.show()

22.使用柱状图可视化不同类Ojob人员的数量

import matplotlib.pyplot as plt
import numpy as np
ojob=np.array(df.groupby('Ojob')['Ojob'].count().index)
num=np.array(df.groupby('Ojob')['Ojob'].count()[:])
plt.bar(ojob,num)
plt.show()

 

标签:count,python,print,Ojob,df,可视化,数据挖掘,display,Mjob
From: https://blog.csdn.net/m0_68131322/article/details/136954654

相关文章

  • Python爬虫--2
    本节笔记获取豆瓣网站内容记录文件创建时间文件→设置→编辑器→文件和代码模板中找到PythonScript在输入界面输入"#日期:${DATE}"#文件:${NAME}新建一个Python文件,显示了此文件创建时间和文件名字一.单页获取1.获取电影名字网页URL:https://movie.douban.com/top250......
  • Python 中的抽象类和接口类
    【抽象类】抽象类是一个特殊的类,只能被继承,不能被实例化。它主要用于作为其他类的基类或模板。抽象类可以包含抽象方法和具体方法。在抽象类中定义的抽象方法必须在子类中进行实现。fromabcimportabstractmethod,ABCMetaclassFruit(metaclass=ABCMeta):@abstractme......
  • Python好库
    Python好库一、有序列表fromsortedcontainersimportSortedListsl=SortedList([1,3])sl.add(-1)sl.remove(3)print(sl)print(sl.bisect_left(1))print(sl.bisect_right(3))"""SortedList([-1,1])12"""二、排列组合fromitertoolsimpor......
  • 【Python】可视化Python库的依赖关系
    这里主要用了两个库:pipdeptree和pyecharts。pipdeptree用来解析所有库的依赖关系。pyecharts用来显示依赖的网络关系。通常的方法应该是通过输入下面命令:pipdeptree--json-tree>pkg.json得到关系树文件,然后解析该文件并在pyecharts显示即可。不过我不想解析json文件了......
  • Python问题异常处理与日志结合
    我们掌握了try-except来处理程序运行中可能遇到的异常,以及使用logging来记录程序运行日志,该篇文章就结合二者来讲讲如何记录程序运行过程中的各种事件、状态信息以及遇到的异常情况,以便于追踪、诊断和解决程序运行时的问题。目录一、配置日志记录器 (logging.Logger)二、......
  • 10个超实用的Python模板
    From: https://mp.weixin.qq.com/s/MCQIDYEXsp2v7RRsLaJ4JA-------------------------------------------------------------------------------------以下是10个超实用的Python模板,可以帮助您更快速地开始编写不同类型的代码:1.简单脚本模板:#!/usr/bin/env pythondef main......
  • 【进阶五】Python实现SDVRP(需求拆分)常见求解算法——自适应大邻域算法(ALNS)
    基于python语言,采用经典自适应大邻域算法(ALNS)对需求拆分车辆路径规划问题(SDVRP)进行求解。目录往期优质资源1.适用场景2.代码调整3.求解结果4.代码片段参考往期优质资源经过一年多的创作,目前已经成熟的代码列举如下,如有需求可私信联系,表明需要的问题与算法......
  • 如何使用Python编写网络程序来控制和交互物联网设备
    要使用Python编写网络程序来控制和交互物联网设备,你需要遵循以下步骤:选择合适的物联网设备:首先,你需要确定你想控制的物联网设备类型,例如智能灯泡、智能插座、温度传感器等,并了解其支持的通信协议(如MQTT,HTTP,CoAP等)。准备开发环境:确保你的计算机上安装了Python。根......
  • python案例
    1.针对数值运算符水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身。例如:1^3+5^3+3^3=153。#水仙花数#方法一:foriinrange(100,1000):a=i//100b=(i-a*100)//10c=(i-a*100-b*10)ifi==pow(a,3)+......
  • python自动化——web自动化框架常用封装代码复习——当你会开发之后,发现一切都是如此
    PS:  PO模式知识点如下: 1、知识点:函数的书写、类、继承,模块导入; 2、思路:分层,抽离;     =====================================================================          编写用例基础版本:   pytest参数化,以及原始selenium用例编......