醒醒,别睡了...讲《数据分析pandas库》了—/—<1>

一、了解pandas

        No.1 Pandas 是 Python 语言的一个扩展程序库,用于数据分析,是一个强大的分析结构化数据的工具集,基础是Numpy库,可以去参考前面所讲的课。(提供高性能的矩阵运算

        No.2 应用 :Pandas 可以从各种文件格式比如 CSV、JSON、SQL、Microsoft Excel 导入数据,对各种数据进行运算操作,比如归并、再成形、选择,还有数据清洗数据加工特征。

        No.3 数据结构:Pandas 的主要数据结构是 Series (一维数据)与 DataFrame(二维数据)

                ● Series:是一种类似于一维数组的对象,它由一组数据(各种 Numpy 数据类型)以及一组与之相关的数据标签(即索引)组成。可以简单看一下下列代码:

                ● DateFrame: 是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。DataFrame 既有行索引也有列索引,它可以被看做由 Series 组成的字典(共同用一个索引)。

        No.4 特点:Pandas 可以让你轻松地处理各种数据结构,尤其是表格型数据,如 SQL 数据库或 Excel 表格。主要特点为:数据结构、数据加载与保存、数据清洗与转换、数据分析与统计、数据可视化

二、运用pandas

1、安装pandas库

        不多说,直接win+R

pip install pandas

2、设定系统环境

        因为我使用的是jupyter notebook(pycharm终端直接输入jupyter notebook+回车),因为jupyter更适合对数据类型的处理,第一次打开需要设定一下系统环境,当然,pycharm也可以敲代码,但是社区版的用不了jupyter。

#导入pandas包
import pandas as pd
#设定页面运行结果最大行数
pd.options.display.max_rows=10
#显示版本号
print(pd.__version__)

3、Series对象创建

        Series:一维数组,Numpy中的一维array类似。它是一种类似于一维数组的对象,是由一组数据(各种 NumPy 数据类型)以及一组与之相关的数据标签(即索引)组成。仅由一组数据也可产生简单的Series 对象。用值列表生成 Series 时,Pandas 默认自动生成整数索引

import pandas as pd
date=pd.Series([45,6,8,6,12,55,6])
#也可以这么写date=pd.Series(list('abcde'))
print(date)

        其打印结果如图所示:

        即生成一个一维数组,前一列为索引,后一列为值

        

        ● date.values:获取值信息

        ● date.index:获取索引信息,即打印索引的始末以及步长

        

        ● 指定index:使用list列表指定index
date1=pd.Series([45,6,8,6,12],index=['one','two','three','four','five'])

          

        ● 传入字典创建,默认将key 作为index,如果 key 不存在,则值为 NaN
#导入一个字典,然后生成一个一维数组,
population=pd.Series({'beijing':10,'shanghai':10,'guangzhou':10})
#通过索引取这个一维数组的值,如果没有这个索引则返回Non
pd.Series(population,index=['shanghai','a'])

        将一个标量与index对象一起传入创建

pd.Series(10,list("abcd"))

          

       

4、DateFrame对象的创建

        DataFrame 是 Pandas 中的一个表格型数据结构,包含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型等)DataFrame 即有行索引也有列索引,可以被看做是由 Series 组成的字典。将两个series对象作为dictvalue传入,就可以创建一个DataFrame对象。

4.1 观察代码了解DateFrame的用法
#定义两个字典用来存放行数据
popular={'hangzhou':1000,'shanghai':1100,'beijing':1200}
area={'hangzhou':800,'shanghai':900,'beijing':999}
#将两个字典导入Series,将其改编成一维数组类型
a=pd.Series(popular)
b=pd.Series(area)
#将两个一维数组合并起来,并命名字典中值所对应的列名,列名为popular和area
df=pd.DataFrame({"popular":a,"area":b})

        其打印结果为一个列表:

        ● 解析values index columns属性

        以 上部分代码结果 df 为例

df.index:即为这个二维数组的索引名称

df.values: 即返回这个列表所对应值的二维数组:

df.columns:即打印列的信息:

4.2 列表创建

        观察以下代码,稍后再慢慢分析

popular={'hangzhou':1000,'shanghai':1100,'beijing':1200}
area={'hangzhou':800,'shanghai':900,'beijing':999}pd.DataFrame([popular,area],index=['population','area'])

打印结果为:

这段代码和上面写的基本一致,只不过改了行和列的位置,即导入两个字典,字典键是一样的,如果不一样会增加一列,对应没有的值会返回NaN,然后再使用DateFrame将两个字典写入列表,DateFrame括号内后一部分index行,前一部分为列,将两个字典导入列表写入列表,再以index来命名行的名称

4.3 索引columns的使用

columns顾名思义就是列的意思,在DateFrame中当做属性指定列名来使用

popular={'hangzhou':1000,'shanghai':1100,'beijing':1200}
population=pd.Series(popular)
pd.DataFrame(population,columns=['nihao'])

4.4 二维数组指定columnsindex创建

        先看代码

import numpy as np
pd.DataFrame(np.random.randint(1,100,(4,5)),index=list('abcd'),columns=list('efghi'))

其生成如图所示的4行5列的列表:

解析代码:

np.random.randint(1,100,(4,5))是随机生成1-100的整数,组成4行5列,

index=list('abcd'),columns=list('efghi') 他俩的作用一个是索引名称一个是列名,用列表中的值输出

最后将这两部分放进DateFrame中生成一个带索引名和列名的列表

4.5 取列的方式

        ● df.e :获取列表df中索引列为e的列数据

        ● df['e'] :获取列表df中索引列为e的列数据

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

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

相关文章

vue上传Excel文件并直接点击文件列表进行预览

本文主要内容:用elementui的Upload 组件上传Excel文件,上传后的列表采用xlsx插件实现点击预览表格内容效果。 在项目中可能会有这样的需求,有很多种方法实现。但是不想要跳转外部地址,所以用了xlsx插件来解析表格,并展…

Docker安装kkFileView实现在线文件预览

kkFileView为文件文档在线预览解决方案,该项目使用流行的spring boot搭建,易上手和部署,基本支持主流办公文档的在线预览,如doc,docx,xls,xlsx,ppt,pptx,pdf,txt,zip,rar,图片,视频,音频等等 官方文档地址:https://kkview.cn/zh-cn/docs/production.html 一、拉取镜像 do…

1 深度学习网络DNN

代码来自B站up爆肝杰哥 测试版本 import torch import torchvisiondef print_hi(name):print(fHi, {name}) if __name__ __main__:print_hi(陀思妥耶夫斯基)print("HELLO pytorch {}".format(torch.__version__))print("torchvision.version:", torchvi…

用在ROS2系统中保持差速轮方向不变的PID程序

在ROS 2中,为了保持差速轮机器人的方向不变,通常需要使用PID(Proportional Integral Derivative)控制器来控制机器人的角速度。PID控制器可以帮助调整机器人的角速度,以维持其朝向不变。 下面是一个简单的ROS 2节点示…

使用el-table的案例小结——包含跨页多选、双击行、分页器、编辑\删除行、动态根据分页生成序号

首先看一下业务需求 需要实现跨页多选,双击行的时候弹出编辑对话框,对每行可以进行编辑和删除,实现分页器。 如果还没在项目中配置element-plus的可以参考文章 从零开始创建vue3项目——包含项目初始化、element-plus、eslint、axios、router…

vue import from

vue import from 导入文件,从XXXX路径;引入文件 import xxxx from “./minins/resize” import xxxx from “./minins/resize.js” vue.config.js 定义 : resolve(src);就是指src 目录 import xxxx from “/utils/auth” im…

【C++初阶】string类

【C初阶】string类 🥕个人主页:开敲🍉 🔥所属专栏:C🥭 🌼文章目录🌼 1. 为什么学习string类? 1.1 C语言中的字符串 1.2 实际中 2. 标准库中的string类 2.1 string类 2.…

Web响应式设计———1、Grid布局

1、网格布局 Grid布局 流动网格布局是响应式设计的基础。它通过使用百分比而不是固定像素来定义网格和元素的宽度。这样&#xff0c;页面上的元素可以根据屏幕宽度自动调整大小&#xff0c;适应不同设备和分辨率。 <!DOCTYPE html> <html lang"en"> &l…

Mysql-索引视图

目录 1.视图 1.1什么是视图 1.2为什么需要视图 1.3视图的作用和优点 1.4创建视图 1.5更新视图 1.6视图使用规则 1.7修改视图 1.8删除视图 2.索引 2.1什么是索引 2.2索引特点 2.3索引分类 2.4索引优缺点 2.5创建索引 2.6查看索引 2.7删除索引 1.视图 1.1什么是…

go中map

文章目录 Map简介哈希表与Map的概念Go语言内建的Map类型Map的声明Map的初始化Map的访问Map的添加和修改Map的删除Map的遍历 Map的基本使用Map的声明与初始化Map的访问与操作Map的删除Map的遍历Map的并发问题实现线程安全的Map 3. Map的访问与操作3.1 访问Map元素代码示例&#…

释疑 803-(1)概述 精炼提纯版

目录 习题 1-01计算机网络可以向用户提供哪些服务? 1-02 试简述分组交换的要点。 1-03 试从多个方面比较电路交换、报文交换和分组交换的主要优缺点。 1-05 互联网基础结构的发展大致分为哪几个阶段?请指出这几个阶段最主要的特点。 1-06 简述互联网标准制定的几个阶段…

web网站组成

web网站由四部分组成&#xff1a;浏览器 前端服务器 后端服务器 数据库服务器 流程&#xff1a; 1.浏览器输入网站后&#xff0c;向前端服务器发送请求&#xff0c;前端服务器响应&#xff0c;静态的数据给浏览器。 2.前端代码中script中有url,这个是向后台发送请求的网…

手撕数据结构---------顺序表和链表

1.线性表 线性表&#xff08;linear list&#xff09;是n个具有相同特性的数据元素的有限序列。 线性表是⼀种在实际中⼴泛使 ⽤的数据结构&#xff0c;常⻅的线性表&#xff1a;顺序表、链表、栈、队列、字符串… 线性表在逻辑上是线性结构&#xff0c;也就说是连续的⼀条直…

Python研究生毕业设计,数据挖掘、情感分析、机器学习

最近在学校毕业了&#xff0c;其中有很多毕业论文使用到的代码&#xff0c;如数据挖掘、情感分析、机器学习、数据预测处理、划分数据集和测试集&#xff0c;绘制分类任务&#xff0c;词汇表示&#xff1a;使用TF-IDF向量化器&#xff0c;线性回归、多元线性回归、SVR回归模型&…

ecshop网站部署

目录 步骤1 ecshop网站的部署 一、安装环境 二、设置开机启动 ​三、 测试php ​四、上传安装包 五、安装ecshop 步骤1 ecshop网站的部署 一、安装环境 yum install -y httpd mariadb-server php php-devel php-mysql 浏览器访问&#xff1a;192.168.30.2 二、设置开机启…

LeetCode 415.字符串相加 C++写法

LeetCode 415.字符串相加 C写法 思路&#x1f914;&#xff1a; 首先不能用stoi和tostring来做&#xff0c;如果给一个很大的数那一定存不下。我们可以从后往前一位一位的取&#xff0c;创建一个变量存储进位用于计算下一位数&#xff0c;之后取模得到当前数字&#xff0c;每一…

k8s部署rabbitmq集群

1 部署集群 1.1 安装 # 创建一个中间件的命名空间 kubectl create namespace middleware # 创建ConfigMap,包含RabbitMQ的配置文件内容 kubectl apply -f rabbitmq-configmap.yaml # 配置用于存储RabbitMQ数据的PersistentVolume&#xff08;PV&#xff09;和PersistentVolum…

iPhone 17系列取消17 Plus版本?新一代苹果手机迎来新变革

随着科技的飞速发展&#xff0c;苹果公司再次准备刷新我们的期待&#xff0c;即将推出的iPhone 17系列携带着一系列令人兴奋的升级。今年&#xff0c;苹果打破了常规&#xff0c;将四款新机型带入市场——iPhone 17、17 Pro、17 Pro Max&#xff0c;以及一款全新的成员&#xf…

Java开发之反射与动态代理

#来自ゾフィー&#xff08;佐菲&#xff09; 1 反射&#xff08;Reflect&#xff09; 运行期间&#xff0c;获取类的信息&#xff0c;进行一些操作。 运行时构造类的对象。运行时获取类的成员变量和方法。运行时调用对象的方法&#xff08;属性&#xff09;。 2 Class 类 Cla…

IntelliJ IDEA 2024.1.4最新实用教程!!爽到飞起!!

IntelliJ IDEA 2024.1.4最新破解教程&#xff01;&#xff01;直接2099&#xff01;&#xff01;爽到飞起&#xff01;&#xff01;【资源在末尾】安装馆长为各位看官准备了多个版本&#xff0c;看官可根据自己的需求进行下载和选择安装。https://mp.weixin.qq.com/s/oBgoHdFU4…