Pandas武功修炼秘籍(第一章:初见端倪)
Pandas基础语法
- 数据类型
- Series
- DataFrame
- 数据类型操作
- 创建对象
- Series
- DataFrame
- 对象属性
- 对象方法
- 索引
- 重新排序
- n.reindex()
- n.sort_index()
- n.sort_values()
- 增添&修改
- 增添行/列
- 删除
- 数据运算
- 同维度
- 不同维度
在学习pandas之前问自己三个问题
- What is Pandas?
- How to use Pandas?
- 和其他数据处理第三方库相比,pandas有什么不同&相同之处?
第一个问题可以在pandas官方网站链接: link 找到答案
pandas is an open source BSD-licensed library providing high-performance, easy-to-use data structures and data analysis tools for the Python programming language.
从这一段话中我们可以知道如下信息:
- pandas是一个开源的第三方python库
- pandas主要用于数据分析,数据应用
- pandas提供了不止一种数据类型
第二个问题
How to use Pandas?
数据类型
要理解pandas的功能,就必须先了解pandas创建出对象的数据类型
Series
Series类型由一组数据及与之相关的数据索引组成,用于一维数组
简称:一组索引,一组值
DataFrame
DataFrame类型由共用相同索引的一组列组成,用于二维或多维数组
简称:一组索引,多组值
数据类型操作
创建对象
import pandas as pd
Series
#列表创建
#注:顺序不可调换:值在前,索引在后. index可省略
pd.Series([1,2,3,4])
pd.Series([1,2,3,4],index=[0,1,2,3])
pd.Series([1,2,3,4],[0,1,2,3])
#range函数创建
pd.Series(range(1,5,1))
#ndarray创建
pd.Series(np.array(range(1,5,1)))
#字典创建
#字典中的key相当于Series中的index
pd.Series({0:1,1:2,2:3,3:4})
#index参数可以指定索引顺序
pd.Series({0:1,1:2,2:3,3:4},index=[0,1,2,3])
#以上运行结果皆为(除np是int32以外)
Out[94]:
0 1
1 2
2 3
3 4
dtype: int64
DataFrame
#由Series&字典创建
pd.DataFrame({'one':pd.Series(range(1,3,1),['a','b']),'two':pd.Series([4,5],index=['a','b'])})
#由列表字典创建
pd.DataFrame({'one':[1,2],'two':[4,5]},index=['a','b'])
#上述两种创建方式结果均为:
Out[100]: one two
a 1 4
b 2 5
#从二维ndarray对象创建
pd.DataFrame(np.arange(10).reshape(2,5),index=['a','b'],columns=['one','two','three','four','five'])
Out[103]: one two three four five
a 0 1 2 3 4
b 5 6 7 8 9
对象属性
#Series&DataFrame共有
n.values
n.index
#Series
n.name #需提前在创建时指定属性 n=np.Series(...,name='')
n.index.name
#DataFrame
n.columns
对象方法
适用于Series和DataFrame
get #类似字典中的get方法
n.get(key, default=None)
key -- 字典中要查找的键。
default -- 如果指定键的值不存在时,返回该默认值。
in #判断值是否存在
存在返回True
不存在返回False
索引
pandas数据类型存在两种索引类型:
数字索引( 从0开始 )
自定义索引
DataFrame类型既有行索引也有列索引
#行索引
n.index
#列索引
n.columns
#值索引
n[c][i]
Series类型只有行索引
重新排序
n.reindex()
自定义行或列的排序
n.reindex(index=None, columns=None, …)
index=[你希望重排后的顺序]
columns=[你希望重排后的顺序]
- index, columns 新的行列自定义索引
- fill_value 重新索引中,用于填充缺失位置的值
- method 填充方法, ffill当前值向前填充,bfill向后填充
- limit 最大填充量
- copy 默认True,生成新的对象,False时,新旧相等不复制
n.sort_index()
对行或列进行升序或降序排序
n.sort_index(axis=0,ascending = False)
axis 轴
#轴(axis): 保存数据的维度;秩(rank):轴的数量
axis=0 默认重排行
axis=1 重排列
ascending=False 升序(从小到大)
n.sort_values()
按值排序
DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last')
#### 参数说明
axis=0 默认重排行
axis=1 重排列
by:str or list of str;
axis=0,by="列名"
axis=1,by="行名";
ascending=True 升序(从小到大)
inplace:布尔型,是否用排序后的数据框替换现有的数据框
kind:排序方法,{‘quicksort’, ‘mergesort’, ‘heapsort’}
默认是kind='quicksort'
na_position : {‘first’, ‘last’}
na_position='last'默认缺失值排在最后面
增添&修改
增添行/列
insert方法 索引类型方法 (作用对象为index类型)
- 创建一个索引类型,调用insert方法
#在loc位置增加一个元素e
d.index.insert(loc,e)
d.columns.insert(loc,e)
- 利用reindex方法替换掉旧的行/列
n = pd.DataFrame(np.arange(10).reshape(2,5),index=['a','b'],columns=['one','two','three','four','five'])
Out[103]: one two three four five
a 0 1 2 3 4
b 5 6 7 8 9
ni=n.index.insert(2,'c')
nc=n.columns.insert(5,'six')
n.reindex(index=ni,columns=nc,fill_value=0)
Out[154]: one two three four five six
a 0 1 2 3 4 0
b 5 6 7 8 9 0
c 0 0 0 0 0 0
删除
- delete方法 索引类型方法
.delete(loc) 删除loc位置处的元素
用法与insert相同
- drop
删除Series和DataFrame指定行或列索引
n.drop(index,axis=0)
axis=0 默认是行
axis=1 列
数据运算
数据运算时,倾向将对象看做一个整体,类似行列式,矩阵;对整体进行运算
同维度
- 算数运算
自动补齐,索引相对应相加减 - 比较运算
产生布尔对象,不补齐
不同维度
默认在1轴(即航运算),如果想要进行列运算,要制定axis=0
第三个问题
和其他数据处理第三方库相比,pandas有什么不同&相同之处?
numpy是基础数据类型,常与pandas搭配使用
pandas是扩展的数据类型
numpy更注重数据维度
pandas更注重数据与索引之间的关系和运算
一种观念只能生长在一堆观念之上,学习新事物尤是如此
Pandas武功修炼秘籍(第一章:初见端倪)相关推荐
- Kali Linux 网络扫描秘籍 第一章 起步(一)
第一章 起步(一) 作者:Justin Hutchens 译者:飞龙 协议:CC BY-NC-SA 4.0 第一章介绍了设置和配置虚拟安全环境的基本知识,可用于本书中的大多数场景和练习. 本章中讨论的 ...
- Kali Linux Web 渗透测试秘籍 第一章 配置 Kali Linux
第一章 配置 Kali Linux 作者:Gilberto Najera-Gutierrez 译者:飞龙 协议:CC BY-NC-SA 4.0 简介 在第一章中,我们会涉及如何准备我们的 Kali 以 ...
- Kali Linux 秘籍 第一章 安装和启动Kali
第一章 安装和启动Kali 作者:Willie L. Pritchett, David De Smet 译者:飞龙 协议:CC BY-NC-SA 4.0 简介 Kali Linux,简称Kali,是用 ...
- Kali Linux 网络扫描秘籍 第一章 起步(二)
第一章 起步(二) 作者:Justin Hutchens 译者:飞龙 协议:CC BY-NC-SA 4.0 1.6 增加 Windows 的攻击面 为了进一步提高Windows操作系统上可用的攻击面, ...
- 【设计模式修炼】第一章 :获得《七大原则》
在遥远的编程大陆,这里的人们奉行着编程为尊的原则,要想出人头地就要掌握强大的编程功法. 在众多强大的编程家族代代相传有强大功法之外,其中不乏一些失传已久的编程功法.这些功法已经随着时间的流逝散 ...
- Java 从死到生的修炼 (第一章:生命的起源之接触.)
所有的程序语言的第一句总是"Hello World",当然我们跨平台的Java当然也不例外,这句话已经成为菜鸟必须要跨过的门槛 文章目录 一.为什么要学习Java? 1.简 ...
- JAVA修炼秘籍第六章《鏖战》
往期: JAVA 修炼秘籍第一章:<痛苦的折磨> JAVA 修炼秘籍第二章:<逐渐魔化> JAVA 修炼秘籍第三章:<绝地反击> JAVA 修炼秘籍第四章:< ...
- JAVA修炼秘籍第四章《闭关修炼》
往期: JAVA 修炼秘籍第一章:<痛苦的折磨> JAVA 修炼秘籍第二章:<逐渐魔化> JAVA 修炼秘籍第三章:<绝地反击> 文章目录 一.方法 方法的重载 方 ...
- JAVA修炼秘籍(番外篇)第二章:《图书馆管理系统》
往期: JAVA 修炼秘籍第一章:<痛苦的折磨> JAVA 修炼秘籍第二章:<逐渐魔化> JAVA 修炼秘籍第三章:<绝地反击> JAVA 修炼秘籍第四章:< ...
最新文章
- C语言实现长整数连加,二个超长正整数的相加
- HDLBits 系列(27)孰对孰错 之 Fsm onehot?
- 【基于深度学习的脑电图识别】数据集篇:脑电信号自动判读的大数据
- word或wps中mathtype在工具栏/菜单栏消失的解决方法
- 2019ICPC(上海) - Counting Sequences I(dfs打表)
- oracle基于时间恢复整个数据库
- Linux dd命令 复制(拷贝)文件,并对原文件进行转换
- python定义二维数组_在python中定义二维数组
- HTML5 音视频操作
- TurboMail打造雀氏(中国)日用品邮件系统
- php上传视频无图像,php-PHP实现视频上传与播放,代码出现问题,求解!上传图片后提示没有上传文件或文件大于300M,是什么原因?...
- bzoj 1856: [Scoi2010]字符串(卡特兰数)
- 【译】x86程序员手册13-第5章 内存管理
- 到底该如何理解 Unix/Linux 的文件系统?看这篇就知道了
- Swift - 高级运算符介绍
- 异速联某客户端无法登陆
- 《APUE.3E》用gdb调试ftw函数(图4-22)
- qlv文件怎么打开 怎么把qlv文件转换成MP4的文件呢
- 用Python生成动态二维码,只要5行代码,拥有你的个性二维码!
- Android刘海屏适配
热门文章
- Word功能-“多级列表”-用法笔记
- 【闲聊杂谈】Redis中的CAP理论
- 使用JavaScript 中的Math对象和勾股定理公式,计算鼠标的位置与页面图片中心点的距离,根据距离对页面上的图片进行放大或缩小处理。距离远时图片放大,距离近时图片缩小
- python实战扫码下载_Python实例 一 12306抢票(一)扫码登陆
- iOS 图标alpha问题
- 极客时间--数据结构与算法之美
- android虚拟键盘挡住布局,让Android软键盘不遮挡布局
- 端到端的语音识别模型
- RS-485(物理层) 硬件接口
- vue之猫眼json数据的获取直接用于自己的vue项目中,swiper轮播插件的坑