iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python机器学习三大件之二pandas
  • 478
分享到

Python机器学习三大件之二pandas

PythonpandasPython机器学习 2022-06-02 22:06:33 478人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

一、pandas 2008年WesMcKinney开发出的库 专门用于数据挖掘的开源python库 以Numpy为基础,借力Numpy模块在计算方面性能高的优势 基于matplotlib,能够简便的画图 独特的数据结

一、pandas

2008年WesMcKinney开发出的库

专门用于数据挖掘开源python

以Numpy为基础,借力Numpy模块在计算方面性能高的优势

基于matplotlib,能够简便的画图

独特的数据结构

二、数据结构

  • Pandas中一共有三种数据结构,分别为:Series、DataFrame和MultiIndex。

三、Series

Series是一个类似于一维数组的数据结构,它能够保存任何类型的数据,比如整数、字符串、浮点数等,主要由一组数据和与之相关的索引两部分构成。

在这里插入图片描述

  • Series的创建

import pandas as pd
pd.Series(np.arange(3))

0 0
1 1
2 2
dtype: int64


#指定索引
pd.Series([6.7,5.6,3,10,2], index=[1,2,3,4,5])

1 6.7
2 5.6
3 3.0
4 10.0
5 2.0
dtype: float64


#通过字典数据创建
color_count = pd.Series({'red':100, 'blue':200, 'green': 500, 'yellow':1000})
color_count

blue 200
green 500
red 100
yellow 1000
dtype: int64

  • Series的属性

color_count.index
color_count.values

也可以使用索引来获取数据:


color_count[2]

100

data[‘p_change'].sort_values(ascending=True) # 对值进行排序
data[‘p_change'].sort_index() # 对索引进行排序
#series排序时,只有一列,不需要参数

四、DataFrame

创建


pd.DataFrame(np.random.randn(2,3))

在这里插入图片描述


score = np.random.randint(40, 100, (10, 5))
score

array([[92, 55, 78, 50, 50],
[71, 76, 50, 48, 96],
[45, 84, 78, 51, 68],
[81, 91, 56, 54, 76],
[86, 66, 77, 67, 95],
[46, 86, 56, 61, 99],
[46, 95, 44, 46, 56],
[80, 50, 45, 65, 57],
[41, 93, 90, 41, 97],
[65, 83, 57, 57, 40]])

但是这样的数据形式很难看到存储的是什么的样的数据,可读性比较差!!


# 使用Pandas中的数据结构
score_df = pd.DataFrame(score)

在这里插入图片描述

  • DataFrame的属性

data.shape
data.index
data.columns
data.values
data.T
data.head(5)
data.tail(5)
data.reset_index(keys, drop=True)
keys : 列索引名成或者列索引名称的列表
drop : boolean, default True.当做新的索引,删除原来的列

  • dataframe基本数据操作

data[‘open'][‘2018-02-27'] # 直接使用行列索引名字的方式(先列后行)
data.loc[‘2018-02-27':‘2018-02-22', ‘open'] # 使用loc:只能指定行列索引的名字
data.iloc[:3, :5 ]# 使用iloc可以通过索引的下标去获取
data.sort_values(by=“open”, ascending=True) #单个排序
data.sort_values(by=[‘open', ‘high']) # 按照多个键进行排序
data.sort_index() # 对索引进行排序

DataFrame运算

应用add等实现数据间的加、减法运算
应用逻辑运算符号实现数据的逻辑筛选
应用isin, query实现数据的筛选
使用describe完成综合统计
使用max, min, mean, std完成统计计算
使用idxmin、idxmax完成最大值最小值的索引
使用cumsum等实现累计分析
应用apply函数实现数据的自定义处理

五、pandas.DataFrame.plot

DataFrame.plot(kind=‘line')
kind : str,需要绘制图形的种类
‘line' : line plot (default)
‘bar' : vertical bar plot
‘barh' : horizontal bar plot
关于“barh”的解释:
Http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.plot.barh.html
‘hist' : histogram
‘pie' : pie plot
‘scatter' : scatter plot

六、缺失值处理

isnull、notnull判断是否存在缺失值
np.any(pd.isnull(movie)) # 里面如果有一个缺失值,就返回True
np.all(pd.notnull(movie)) # 里面如果有一个缺失值,就返回False
dropna删除np.nan标记的缺失值
movie.dropna()
fillna填充缺失值
movie[i].fillna(value=movie[i].mean(), inplace=True)
replace替换
wis.replace(to_replace="?", value=np.NaN)

七、数据离散化


p_change= data['p_change']
# 自行分组,每组个数差不多
qcut = pd.qcut(p_change, 10)
# 计算分到每个组数据个数
qcut.value_counts()

# 自己指定分组区间
bins = [-100, -7, -5, -3, 0, 3, 5, 7, 100]
p_counts = pd.cut(p_change, bins)

得出one-hot编码矩阵


dummies = pd.get_dummies(p_counts, prefix="rise")
#prefix:分组名字前缀

八、数据合并

pd.concat([data1, data2], axis=1)
按照行或列进行合并,axis=0为列索引,axis=1为行索引

pd.merge(left, right, how=‘inner', on=None)

可以指定按照两组数据的共同键值对合并或者左右各自
left: DataFrame
right: 另一个DataFrame
on: 指定的共同键
how:按照什么方式连接

九、交叉表与透视表

交叉表:计算一列数据对于另外一列数据的分组个数 透视表:指定某一列对另一列的关系


#通过交叉表找寻两列数据的关系
count = pd.crosstab(data['week'], data['posi_neg'])
#通过透视表,将整个过程变成更简单一些
data.pivot_table(['posi_neg'], index='week')

十、数据聚合


count = starbucks.groupby(['Country']).count()
col.groupby(['color'])['price1'].mean()
#抛开聚合谈分组,无意义

到此这篇关于Python机器学习三大件之二pandas的文章就介绍到这了,更多相关Python pandas内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python机器学习三大件之二pandas

本文链接: https://www.lsjlt.com/news/10595.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python学习之旅(三十二)
    Python内置了turtle库,可以在计算机上绘图 运动控制: 1、画笔定位到坐标(x,y):turtle.goto(x,y) 2、向正方向运动 distance 长的距离:turtle.forward(distance) 3、向负方...
    99+
    2023-01-30
    之旅 Python 三十二
  • python学习之pandas
    #Pandas'''1,Pandas是Python的一个数据分析报包,该工具为解决数据分析任务而创建。2,Pandas纳入大量库和标准数据模型,提供搞笑的操作数据集所需的工具3.pandas提供大量能使我们快速便捷地处理数据的1函数方法4,...
    99+
    2023-01-31
    python pandas
  • Python Pandas库的学习(二)
    今天我们继续讲下Python中一款数据分析很好的库。Pandas的学习 接着上回讲到的,如果有人听不懂,麻烦去翻阅一下我前面讲到的Pandas学习(一) 如果我们在数据中,想去3,4,5这几行数据,那么我们怎么取呢? food.loc[...
    99+
    2023-01-31
    Python Pandas
  • 学习 Python 之 Pandas库
    学习 Python 之 Pandas库 Pandas库什么是Pandas库DataFrame 创建和存储1. 使用DataFrame构造函数(1). 使用列表创建(2). 使用字典创建(3)....
    99+
    2023-10-27
    python
  • Python Pandas学习之series的二元运算详解
    目录二元运算series 的二元运算series 上的二元运算方法二元运算 二元运算是指由两个元素形成第三个元素的一种规则,例如数的加法及乘法;更一般地,由两个集合形成第三个集合的产...
    99+
    2024-04-02
  • python学习之对象的三大特性
    在面向对象程序设计中,对象可以看做是数据(特性)以及由一系列可以存取、操作这些数据的方法所组成的集合。编写代码时,我们可以将所有功能都写在一个文件里,这样也是可行的,但是这样不利于代码的维护,你总不希望维护代码前,还需要从头至尾的通读一遍...
    99+
    2023-01-30
    三大 特性 对象
  • Python学习之旅(三十三)
    网络通信是两台计算机上的两个进程之间的通信,而网络编程就是如何在程序中实现两台计算机的通信 P协议负责把数据从一台计算机通过网络发送到另一台计算机 TCP协议则是建立在IP协议之上的。TCP协议负责在两台计算机之间建立可靠连接,保证数据...
    99+
    2023-01-30
    之旅 Python 三十三
  • python学习之旅(二)
    Python基础知识(1) 一、变量 变量名可以由字母、数字、下划线任意组合而成。 注意:1.变量名不能以数字开头;            2.变量名不能为关键字;            3.变量名尽量起有意义的,能够通过变量名知道代表的...
    99+
    2023-01-30
    之旅 python
  • Python机器学习入门(三)之Python数据准备
    目录1.数据预处理1.1调整数据尺度1.2正态化数据1.3标准化数据1.4二值数据2.数据特征选定2.1单变量特征选定2.2递归特征消除2.3数据降维2.4特征重要性总结特征选择时困...
    99+
    2024-04-02
  • python机器学习实战(三)
    原文链接:www.cnblogs.com/fydeblog/p/7277205.html 前言 这篇博客是关于机器学习中基于概率论的分类方法--朴素贝叶斯,内容包括朴素贝叶斯分类器,垃圾邮件的分类,解析RSS源数据以及用朴素贝叶斯来分析不...
    99+
    2023-01-31
    实战 机器 python
  • Python机器学习入门(二)之Python数据理解
    目录1.数据导入1.1使用标准Python类库导入数据1.2使用Numpy导入数据1.3使用Pandas导入数据2.数据理解2.1数据基本属性2.1.1查看前10行数据2.1.2查看...
    99+
    2024-04-02
  • python学习之数组二
    作用于数组的函数: 通用函数:函数基于元素的,以单元方式作用于数组的,返回的是与原数组具有相同形状的数组。 不通用函数(数组函数):函数能以行或者列的方式作用于整个矩阵;如果没有提供任何参数时,它们将作用于整个矩阵。例如:max、sum和...
    99+
    2023-01-31
    数组 python
  • Python学习之三大名器-装饰器、迭代器、生成器
    一、装饰器装饰,顾名思义就是在原来的基础上进行美化及完善,器这里指函数,所以说装饰器就是装饰函数,也就是在不改变原来函数的代码及调用方式的前提下对原函数进行功能上的完善。其核心原理其实是利用闭包。格式 @关键字+装饰函数被装饰函数()注意:...
    99+
    2023-06-02
  • Python学习之旅(三十七)
    程序运行的时候,数据都是在内存中的。当程序终止的时候,通常都需要将数据保存到磁盘上,无论是保存到本地磁盘,还是通过网络保存到服务器上,最终都会将数据写入磁盘文件。 而如何定义数据的存储格式就是一个大问题。 为了便于程序保存和读取数据,而...
    99+
    2023-01-30
    之旅 Python 三十七
  • Python学习之旅(二十九)
    一、Pillow PIL(Python Imaging Library):提供了强大的图像操作功能,可以通过简单的代码完成复杂的图像处理,是Python平台事实上的图像处理库,支持Python 2.7以及更低的版本 Pillow:在PI...
    99+
    2023-01-30
    之旅 二十九 Python
  • Python学习之旅(二十五)
    正则表达式:检查一个字符串是否与某个模式匹配 \d :匹配数字 \w :匹配字母或数字 . :匹配任意字符 {n} :匹配n个字符 {m,n} :匹配m到n个字符 \s :匹配空格 a|b :匹配a或b ^ :匹配字符串开头 $ :匹配...
    99+
    2023-01-30
    之旅 二十五 Python
  • Python学习之旅(三十四)
    UDP编程 相对TCP,UDP则是面向无连接的协议 使用UDP协议时,不需要建立连接,只需要知道对方的IP地址和端口号,就可以直接发数据包 虽然用UDP传输数据不可靠,但它的优点是和TCP比,速度快,对于不要求可靠到达的数据,就可以使用...
    99+
    2023-01-30
    之旅 Python 三十四
  • Python学习之旅(三十八)
    二、MySQL MySQL是Web世界中使用最广泛的数据库服务器。SQLite的特点是轻量级、可嵌入,但不能承受高并发访问,适合桌面和移动应用。而MySQL是为服务器端设计的数据库,能承受高并发访问,同时占用的内存也远远大于SQLite...
    99+
    2023-01-30
    之旅 Python 三十八
  • Python学习之旅(二十四)
    一、threadlocal 在多线程环境下,每个线程都有自己的数据 一个线程使用自己的局部变量比使用全局变量好,因为局部变量只有线程自己能看见,不会影响其他线程,而全局变量的修改必须加锁 在函数间一层层调用的时候,使用局部变量很麻烦,使...
    99+
    2023-01-30
    之旅 二十四 Python
  • Python学习 :面向对象 -- 三大
    面向对象的三大特性 一、封装 把数据、值、变量放入到对象中 构造方法 _init_方法 特殊作用: 在 obj = 类名() 执行时: 内部自动执行两个步骤: 1、创建对象 2、通过对象执行类中的一个特殊方法(_init_方法) ...
    99+
    2023-01-30
    三大 面向对象 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作