第十章、jupyter入门之pandas
第十章、jupyter入门之pandas
一、什么是pandas
- pandas是基于numpy的一种工具,这个工具是为了解决数据分析任务而创建的
- pandas纳入利润大量库及标准的数据类型,提供了高效的操作的大型的数据集所需要的工具
- pandas提供了大量能使我们快捷的处理数据的函数与方法
- 它是python成为强大而高效的数据分析环境的重要因素之一
导入
# 三剑客
import numpy
import pandas
from pandas import Series,DataFrame
二、Series
Series是一种类似于一组的对象
* values:一组数据(ndarrary)
*index:相关的数据索引标签
创建
由列表或numpy数组创建
s1 = Series([1,2,3,4])
>>> 0 1
1 2
2 3
3 4
dtype: int64
s1 = np.array([1,2,3,4])
>>> array([1, 2, 3, 4])
注意:由ndarray创建的是引用,不是副本,对Series元素的改变也会原来的ndarrary改变对象的元素(列表没有这种情况)
由字典创建
dic = {
'name':'dancer',
'age':19,
'address':'hangzhou'
}
s3 = Series(data=dic)
索引和切片
- 索引和切片
loc为显示切片(通过键),iloc为隐式切片(通过索引)
访问单个元素
s[indexname]
s.loc[indexname] 推荐
s[loc]
s.iloc[loc] 推荐
访问多个元素
s[[indexname1,indexname2]] s.loc[[indexname1,indexname2]] 推荐 s[[loc1,loc2]] s.iloc[[loc1,loc2]] 推荐- 索引和切片
三、基本概念
可以把Series看成一个定长的有序字典
可以通过shape(维度),size(长度),index(键),values(值)等得到series的属性
4.基本运算
运算的原则就是索引对齐,如果缺失索引,对应位置补np.nan
NaN 是np.nan在pandas中的显示形式
可以使用pd.isnull(),pd.notnull(),或自带isnull(),notnull()函数检测缺失数据
可以使用isnull和any结合,来查看某一列或一行数据中是否存在缺失值
四、基本运算
运算的原则就是索引对齐,如果缺失索引,对应位置补np.nan
NaN 是np.nan在pandas中的显示形式
可以使用pd.isnull(),pd.notnull(),或自带isnull(),notnull()函数检测缺失数据
可以使用isnull和any结合,来查看某一列或一行数据中是否存在缺失值
# 需求:提取s3对象中的所有非空数据
s3[s3.notnull()]
# 提取空值的索引
s3[s3.isnull()].index
# Sereis,对象可以使用一个与该对象等长的bool_list列表作为index访问数组元素
# 碰到True,就把对应位置的值返回
s3[[True,False,True,True,True,False]]
# name属性为Series对象添加列索引
s3.name = 'haha'
pandas会自动处理空值
add()
sub()
mul()
div()
Series之间的运算
在运算中自动对齐不同索引的数据
如果索引不对应,则补NaN
# fill_value设置空值的填充值
s1.add(s2,fill_value=0)
五、DataFrame
DataFrame是一个【表格型】的数据结构,可以看做是【由Series组成的字典】(共用同一个索引)。DataFrame由按一定顺序排列的多列数据组成。设计初衷是将Series的使用场景从一维拓展到多维。DataFrame既有行索引,也有列索引。
行索引:index
列索引:columns
值:values(numpy的二维数组)
- 创建
最常用的方法是传递一个字典来创建。DataFrame以字典的键作为每一【列】的名称,以字典的值(一个数组)作为每一列。
dic = {
'张三':[150,150,150,300],
'李四':[0,0,0,0]
}
DataFrame(data=dic,index=['语文','数学','英语','理综'])
也可以用下面代码实现创建
data = [[0,150],[0,150],[0,150],[0,300]]
index = ['语文','数学','英语','理综']
columns = ['李四','张三']
df = DataFrame(data=data,index=index,columns=columns)
>>>
>>>李四 张三
>>>语文 0 150
>>>数学 0 150
>>>英语 0 150
>>>理综 0 300
>>>
>>>
此外,DataFrame会自动加上每一行的索引(和Series一样)。
同Series一样,若传入的列与字典的键不匹配,则相应的值为NaN。
- 索引
(1) 对列进行索引
通过类似字典的方式
通过属性的方式
可以将DataFrame的列获取为一个Series。返回的Series拥有原DataFrame相同的索引,且name属性也已经设置好了,就是相应的列名。
(2) 对行进行索引
使用.ix[]来进行行索引
使用.loc[]加index来进行行索引
使用.iloc[]加整数来进行行索引
同样返回一个Series,index为原来的columns。
(3) 对元素索引的方法
- 使用列索引
- 使用行索引(iloc[3,1]相当于两个参数;iloc[[3,3]] 里面的[3,3]看做一个参数)
- 使用values属性(二维numpy数组)
索引行
df.loc[indexname] 推荐
df.iloc[loc]
索引列
df[columnname] 推荐
df.columnname
索引元素
df.loc[indexname].loc[columnname]
df[columnname].loc[indexname]
df.loc[indexname,columnname] 推荐
第十章、jupyter入门之pandas的更多相关文章
- 第十章 MyBatis入门
第十章 MyBatis入门10.1 MyBatis入门 优点:简单且功能强大.能够完全控制SQL语句.容易维护和修改 缺点:移植性不好 使用步骤: 1.下载 ...
- Python数据分析入门之pandas基础总结
Pandas--"大熊猫"基础 Series Series: pandas的长枪(数据表中的一列或一行,观测向量,一维数组...) Series1 = pd.Series(np.r ...
- 机器学习初入门02 - Pandas的基本操作
之前的numpy可以说是一个针对矩阵运算的库,这个Pandas可以说是一个实现数据处理的库,Pandas底层的许多函数正是基于numpy实现的 一.Pandas数据读取 1.pandas.read_c ...
- 1 Ipython、Jupyter 入门
为什么使用Python进行数据分析: 1 Python大量的库为数据分析和处理提供了完整的工具集 2 比起R和Matlab等其他主要用于数据分析的编程语言,Python更全能 ...
- Pandas系列之入门篇——HDF5
Pandas系列之入门篇--HDF5 简介 HDF5(层次性数据格式)作用于大数据存储,其高效的压缩方式节约了不少硬盘空间,同时也给查询效率带来了一定的影响, 压缩效率越高,查询效率越低.pandas ...
- Python 数据处理库 pandas 入门教程
Python 数据处理库 pandas 入门教程2018/04/17 · 工具与框架 · Pandas, Python 原文出处: 强波的技术博客 pandas是一个Python语言的软件包,在我们使 ...
- 程序员用于机器学习编程的Python 数据处理库 pandas 入门教程
入门介绍 pandas适合于许多不同类型的数据,包括: · 具有异构类型列的表格数据,例如SQL表格或Excel数据 · 有序和无序(不一定是固定频率)时间序列数据. · 具有行列标签的任意矩阵数据( ...
- Python数据分析 Pandas模块 基础数据结构与简介(一)
pandas 入门 简介 pandas 组成 = 数据面板 + 数据分析工具 poandas 把数组分为3类 一维矩阵:Series 把ndarray强大在可以存储任意数据类型可以专门处理时间数据 二 ...
- Python数据分析入门与实践 学习
pandas是一个Python语言的软件包,在我们使用Python语言进行机器学习编程的时候,这是一个非常常用的基础编程库.本文是对它的一个入门教程.pandas提供了快速,灵活和富有表现力的数据结构 ...
随机推荐
- redis基础学习---1
5.1.xshell传输文件命令快捷键:alt+p 2.当运行一个程序时,想退出按ctrl+c退出 3.给用户权限:chmod 777 redis.conf 另一种方式:chmod –x 4. 5.查 ...
- c++ STL之unordered_map
1.1 特性 关联性:通过key去检索value,而不是通过绝对地址(和顺序容器不同) 无序性:使用hash表存储,内部无序 Map : 每个值对应一个键值 键唯一性:不存在两个元素的键一样 动态内存 ...
- docker命令小结
文档:docker命令小结.note链接:http://note.youdao.com/noteshare?id=54015b76db9ae764182cb921e348b7fc&sub=DD ...
- Visual Studio工具
下载地址: https://code.visualstudio.com 插件安装: http://blog.csdn.net/u011127019/article/details/53158660 下 ...
- 删除指定路径下固定格式,以.log结尾、三天前的文件,或删除空的日志文件
师出‘百测’besttest 删除指定路径下固定格式,以.log结尾.三天前的文件,或删除空的日志文件. 日志文件格式:XXXX_2019-01-01.log. import os,datetime ...
- Etherscan
转载声明:https://blog.csdn.net/shebao3333/article/details/79858250 (仅方便自己查看及原文章被删除) 什么是Etherscan? 简单来说是一 ...
- Windows To Go 制作详解
拥有 Mac 的同学大概都会碰到一个头疼的问题,那就是使用 Windows 的使用需求.macOS 虽好,不过总是会有一些讨厌的软件没有 Mac 版本,这时就不得不在 Mac 上跑 Windows 了 ...
- springboot整合es客户端操作elasticsearch(三)
继续上个随笔: 那么我们只需要修改controller中文件就可以完成相关操作 本次主要是对文档得操作: 更新文档: package com.cxy.elasticsearch.controller; ...
- Linux下将用户添加到sudoers中
Linux默认是没有将用户添加到sudoers列表中的,需要root手动将账户添加到sudoers列表中,才能让普通账户执行sudo命令. root 账户键入visudo即可进入sudo配置,这个命令 ...
- [AcWing303/304]任务安排2/3
[AcWing303]任务安排2 有 \(N\) 个任务排成一个序列在一台机器上等待执行,它们的顺序不得改变.机器会把这 \(N\) 个任务分成若干批,每一批包含连续的若干个任务.从时刻 \(0\) ...