python中pandas进行数据分析与可视化(1)

news2024/11/26 12:24:46

1.创建数据源

matplotlib库是用于数据可视化,pandas则是用于数据分析,在导入这两个包之后,我们可以手工创建两个数据,其表示的是在某一年里,不同名称的新生儿数量,比如被叫做Bob的新生儿有968位

import matplotlib.pyplot as plt
import pandas as pd #导入pandas的常规做法

#创建数据 初始数据集: 婴儿名字和对应的出生数量
names = ['Bob','Jessica','Mary','John','Mel']
births = [968, 155, 77, 578, 973]

之后可以用zip函数将这两个列表合并在一起,获取一个更容易理解的列表

BabyDataSet = list(zip(names, births))
print(BabyDataSet)

在这里插入图片描述

2.数据源表格化

因为在数据分析的时候,往往会使用表格的形式进行处理,所以我们需要先把数据源转换成表格的形式,这里会用到DataFrame对象,我们可以把这个对象理解为包含了BabyDataset 的内容而格式非常象一个 sql 表格或者 Excel 的数据表

df = pd.DataFrame(data = BabyDataSet, columns=['Names', 'Births'])
print(df)

在这里插入图片描述

3.数据保存

此时我们可以将df里的表格数据存储为csv文件,这样可以进行文件共享,这里用到了indexheader两个参数,可以用来控制是否要导出表头和序号

#数据导出 两个参数分别用于决定是否要导出序号和表头
df.to_csv('births1880.csv', index=False, header=False)

这里如果不指定导出文件的路径,那就会默认导出到和当前这个python文件相同路径下
在这里插入图片描述

4.数据读取

如果我们从其他人那里获取了一个csv文件,也同样可以通过pandas获取里面的数据

Location = r'./births1880.csv' #从 这个python文件 当前的位置读取 csv 文件
df = pd.read_csv(Location,names=['Names','Births'])
print(df)

同样的,如果不指定获取文件的路径,那也就是会在当前路径下去获取文件
在这里插入图片描述

5.确认数据类型

因为这份数据是在某一年里,不同名称的新生儿数量,所以按道理来说,Births这个字段的值就不应该有小数,我们可以提前通过dtypes来看到每个字段的类型

# 查看每一列的数据类型
print(df.dtypes)

# 查看 Births 列的数据类型
print(df.Births.dtype)

在这里插入图片描述

6.数据分析-获取最大值

如果当前想要获取Births里的最大值,可以直接通过DataFrame对象里的max函数获取

print(df['Births'].max())

在这里插入图片描述
但这种方法只能获取最大的那个数值,没有办法知道对应的Names是什么,所以可以改用对Births排序的方法,再取第一条记录,就可以同时获取所有信息了

Sorted = df.sort_values(['Births'], ascending=False)
print(Sorted.head(1))

在这里插入图片描述

7.数据可视化

之前有写过一篇使用matplotlib绘制可视化图形的博客,这里对其稍作修改,就可以使用,如果对下面这段数据可视化的逻辑有不理解对地方,可以参考python数据分析-matplotlib绘制折线图

# 绘图
# df['Births'].plot()
df['Births'].plot.bar() #这里改用的条形图更直观
# Births 中的最大值
MaxValue = df['Births'].max()
# 找到对应的 Names 值
MaxName = df['Names'][df['Births'] == df['Births'].max()].values
# 准备要显示的文本
Text = str(MaxValue) + " - " + MaxName
# 将文本显示在图形中
plt.annotate(Text, xy=(1, MaxValue), xytext=(8, 0),
xycoords=('axes fraction', 'data'), textcoords='offset points')
print("The most popular name")
df[df['Births'] == df['Births'].max()]
plt.show()
print(df[df['Births'] == df['Births'].max()])

在这里插入图片描述

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

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

相关文章

基于模型预测算法的混合储能微电网双层能量管理系统研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

动态规划之01背包问题

背包练习网址https://www.luogu.com.cn/contest/92872 想要做题的话可以到这里面来进行完成(邀请码:r36l)。注:要输入邀请码才可以进入。 满篇都是干货,有详细的注释和代码,请放心观看。 这就是传说中的 0…

[附源码]Python计算机毕业设计二手交易平台管理系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等…

数据生态第四弹 | OpenMLDB Hive Connector,架构起数据仓库到特征工程的生态桥梁

导读 近日,OpenMLDB 实现了与开源数据仓库软件 Hive 的连接,继完成与 Kafka、Pulsar、RocketMQ 等实时数据源生态整合后,持续构建离线数据生态,期待建设一个更加全面一体的上下游生态圈,在吸引更多用户的同时也能降低…

【能效管理】AcrelEMS-UT综合管廊能效管理平台解决方案应用分析

平台概述 AcrelEMS-UT综合管廊能效管理平台集电力监控、能源管理、电气安全、照明控制、环境监测于一体,为建立可靠、安全、高效的综合管廊管理体系提供数据支持,从数据采集、通信网络、系统架构、联动控制和综合数据服务等方面的设计,解决了…

DC-4靶场教程

探测目标靶机,获取到ip arp-scan -l扫描开放的端口 masscan -p1-65535 192.168.250.213 --rate10000使用nmap获取端口、服务版本、系统等详细信息 nmap -sC -sV -p- -A -T4 192.168.250.213查看使用的中间件 whatweb http://192.168.250.213/访问80端口 没有其…

NLP 模型“解语如神”的诀窍:在文本分类模型中注入外部词典

一. 引言 现实世界的文本表述如恒河沙数,以惊人的速度变换着,人工智能(AI)在快速识别形形色色的文本之前,必须经过充足的训练数据洗礼。然而,面对复杂多变的文本表述,NLP 模型往往无法从有限的…

架构设计(一):从单服务器模式到负载均衡设计

架构设计(一):从单服务器模式到负载均衡设计 作者:Grey 原文地址: 博客园:架构设计(一):从单服务器模式到负载均衡设计 CSDN:架构设计(一&…

latex设置citation显示作者+年份

如果是bib文件分开放,并且每个引用都明确写了author和year,那么直接\citep 就可以,就能产生(abc et al., 2015) 这种格式, 如果你不想要圆括号,可以使用\usepackage[square]{natbib}, 也可以使用\setcitestyle{authoryear,open{(}…

java计算机毕业设计基于安卓Android的论坛App

项目介绍 首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了系统的需求基础上需要进一步地设计系统,主要包罗软件架构模式、整体功能模块、数据库设…

【Kubernetes】Pod数据存储

kubernetes,是一个全新的基于容器技术的分布式架构领先方案,是谷歌严格保密十几年的秘密武器----Borg系统的一个开源版本,于2014年9月发布第一个版本,2015年7月发布第一个正式版本。 kubernetes的本质是一组服务器集群&#xff0…

时间序列异常检测(adtk)

1. 获取时间序列数据 未安装adtk的先安装:pip install adtk 2.阈值检测 adtk.detector.ThresholdAD(lowNone, highNone) 参数: low:下限,小于此值,视为异常 high:上限,大于此值,视为…

基于java+springboot+mybatis+vue+mysql的4S店车辆管理系统

项目介绍 任何系统都要遵循系统设计的基本流程,本系统也不例外,同样需要经过市场调研,需求分析,概要设计,详细设计,编码,测试这些步骤,基于java语言设计并实现了4S店车辆系统&#…

回溯3-----BFS(一石激起千层浪)

文章目录广度优先搜索力扣429-----N叉树的层序遍历力扣994-----腐烂的橘子力扣127 -------单词接龙力扣725------打开转盘锁广度优先搜索 需要借助 队列 来解决问题 例如二叉树的层序遍历 : 1, 将根节点入队 2, 队列出队的时候, …

第一章 OAuth2.0规范(史上最详细解释)——介绍

目录 一、简介 二、角色 二、协议流程 三、授权许可 1、授权码 2、隐式许可 3、资源所有者密码凭据 4、客户端凭据 四、访问令牌 五、刷新令牌 六、TLS版本 七、HTTP重定向 八、互操作性 九、符号约定 一、简介 在传统的客户端-服务器身份验证模式中,客…

docker搭建redis三种集群模式

文章目录一、主从复制1、新建修改配置文件2、执行命令启动redis3、启动客户端测试二、哨兵模式Sentinel1、修改配置文件2、启动sentinel进程3、测试三、集群模式Cluster1、搭建集群1.1、创建集群挂载文件1.2、修改配置文件1.3、docker启动先六个redis实例1.4、构建集群1.5、查看…

【Canvas系列】基础入门(一)

📚 Canvas基础入门 🔥 收藏关注随时温习 💻 在线地址方便浏览 在线学习/演示地址 Canvas API 提供了一个通过JavaScript 和 HTML的元素来绘制图形的方式。它可以用于动画、游戏画面、数据可视化、图片编辑以及实时视频处理等方面 —— MDN 一…

shell-条件

条件可以用test或【命令 符号和被检查的条件之间要留有空格 : if [ -f filename *** ] if 和then用于同一行 if [ ]; then 字符串比较: if [ string1 string2 ] 两个字符串相等为真 if [ string1 ! string2 ] 两个字符串不相等为假 …

web自动化测试:Selenium+Python基础方法封装

推荐阅读: [内部资源] 想拿年薪30W的软件测试人员,这份资料必须领取~ Python自动化测试全栈性能测试全栈,挑战年薪40W 正文 01 目的 web自动化测试作为软件自动化测试领域中绕不过去的一个“香饽饽”,通常都会作为广大测试从…

Fiddler(4):在fiddler会话栏中添加IP列,设置抓HTTPS的请求证书安装

Fiddler(4):在fiddler会话栏中添加IP列 在fiddler会话栏中添加IP列 1、点击菜单栏rules——customize rules…或者在右侧响应栏中点击FiddlerScript栏;如下图: 2、ctrlf搜索“static function main” 3、在main函数里加入下面一行代码&…