IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> pandas的简单操作 -> 正文阅读

[人工智能]pandas的简单操作

目录

Series

DataFrame

?DataFrame常用的方法

loc() 通过行索引查看一行数据

读取文件(.csv)的方法

查看dataframe参数

布尔索引筛选数据

groupby 和 count

reset_index() 重置索引

rename() 修改列的索引名称

sort_values('列名')? 根据列中值的大小,从小到大排序

?截取前n行数据 :切片

关联操作join()

排名rank()


pandas提供了使我们能够快速便捷地处理大量结构化数据,?pandas兼具NumPy高性能的数组计算功能以及电子表格和关系型数据库灵活的数据处理功能

Series

Series 类似表格中的一个列(column),类似于一维数组,可以保存任何数据类型。

Series 由索引(index)和列组成,既然有索引就可以通过索引查找对应的值

如果我们只传入了值,会自动生从0开始的索引

?也可以通过手动传入索引

?numpy中的大部分函数也是可以使用的,比如最大值max()和平均数mean()



DataFrame

DataFrame 是一个表格型的数据结构,它含有多个列。DataFrame 既有行索引也有列索引,它可以被看做由 Series 组成的字典(一个列的数据共同用一个列索引)。

?为什么说是由Series组成的字典呢?

我们单独取出一个列的数据看看,他的类型果然是Series

取出2个列的数据看看类型,果然开始变成DataFrame了,所以他们的差别就是数据是不是只有一列?

?

所以我们可以通过Series构建DataFrame

?DataFrame常用的方法

loc:可以通过行索引查看一行数据

还是使用上面的df1对象

读取文件(.csv)的方法

csv文件是用逗号作为分隔符的文件

格式read_csv(文件路径)

但是这样是有问题的,他把我们的第一行数据当成了列的索引,所以我们需要重新给他传一个索引

在上面的基础上,加上 : 用names=[传入的索引内容...]

head()显示前5行数据,tail()显示后5条数据

(head()里面也可以传入int类型数值,但是最多就显示20条)

查看dataframe参数

info:显所有数据的类型

?corr():查看列之间相关程度(首先得是数值类型)

describe():查看列值的在统计方面的部分参考值

? ?

布尔索引筛选数据

类似numpy,我们也可以使用布尔索引来筛选数据

groupby 和 count

求每个班级的人数,首先可以直接使用gruop by 分组,取出任意一列元素进行count

没有出现粗字体说明这是Series类型,我们可以给他重新设置一个索引,释放clazz列

reset_index()?:重置索引

?

rename() :修改列的索引名称

格式:rename(columns={"原来的列名:新的列名"})

但是这个修改并不会对数据本身进行修改,我们还需要设置inplace=True,让我们做出的改动作用在这个数据本身

sort_values('列名')? 根据列中值的大小,从小到大排序

如果想要从大到小排序,在上面的基础上再设置: ascending=False

? ? ? ??

?截取前n行数据 :切片

可以通过切片实现截取数据

关联操作join()

现在我再次读取一张score表,给列加上索引, 不要让他我们的第一行数据当成索引? ?

?上面的数据里面还包含了每一科目的成绩,太多了,我们把总分算出来方便后面关联,再把score列的索引改变一下变成sum_score

用一个变量sum_scoreDF把上面的表接收一下 ,

stu 和 sum_score DF现在我关联这2张表,使用id 和student_id 连接

格式:表1.merge(表2,left_on='表1中的关联字段',right_on='表2中的关联字段',how='连接方式可以选择:left,right,inner')

drop()直接删除一列的数据

?上面的表连接后出现了重复字段,我们可以从上面的表中把列一个一个挑出来,不过那样太麻烦了,可以直接删除一列drop('索引',axsi='0或者1'),0轴和1轴是numpy中使用坐标的时候也用到的,可以看成是一个第四象限的坐标,横向是1轴

排名rank()

rank方法通常要传的参数:method可以选择排名方法(与hive中的一样)

默认是升序排序,我们求topn问题就需要排序是降序:acending=False,是开启值从大到小排序

stu_sum_scoreDF['first_rank'] = stu_sum_scoreDF.groupby('clazz')['sum_score'].rank(method='first',ascending=False)
stu_sum_scoreDF['min_rank'] = stu_sum_scoreDF.groupby('clazz')['sum_score'].rank(method='min',ascending=False)
stu_sum_scoreDF['max_rank'] = stu_sum_scoreDF.groupby('clazz')['sum_score'].rank(method='max',ascending=False)
stu_sum_scoreDF['dense_rank'] = stu_sum_scoreDF.groupby('clazz')['sum_score'].rank(method='dense',ascending=False)
stu_sum_scoreDF['average_rank'] = stu_sum_scoreDF.groupby('clazz')['sum_score'].rank(method='average',ascending=False)

first:从1开始到最后每有排名重复的

min:排名有重复,如果值相等按照小的写

max:排名有重复,如果值相等按照大的写

dense:和min一样排名有重复,如果值相等按照小的写

average:排名有重复,如果值相等按照重复位置的排名平均数的写

还是不太清楚的可以看看这张图

筛选first_rank<3的,完成分组求topn问题

?

import seaborn as sns
import matplotlib.pyplot as plt

# windows解决中文乱码
plt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False # 用来正常显示负号

plt.figure(figsize=(16,8))#设置画布的大小
plt.title("班级总分TOP3")#设置标题
sns.barplot(x="clazz", y="sum_score", hue="first_rank",data=clazz_top3)
plt.xlabel("班级") //设置x轴的标签
plt.ylabel("总成绩") //设置y轴的标签
plt.ylim(400,650)  //截取y轴的长度
plt.show()  //关闭日志信息

?

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-12-16 17:40:43  更:2021-12-16 17:42:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 0:25:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码