详解Pandas之容易让人混淆的行选择和列选择


Posted in Python onJuly 10, 2019

在刚学Pandas时,行选择和列选择非常容易混淆,在这里进行一下讨论和归纳

本文的数据来源:https://github.com/fivethirtyeight/data/tree/master/fandango

import pandas as pd

fandango = pd.read_csv('fandango_score_comparison.csv')

原始的数据如下(截取了一部分)

详解Pandas之容易让人混淆的行选择和列选择

 行选择

Pandas进行行选择一般有三种方法:

  • 连续多行的选择用类似于python的列表切片
  • 按照指定的索引选择一行或多行,使用loc[]方法
  • 按照指定的位置选择一行多多行,使用iloc[]方法

第一种,使用类似于python的列表切片

n = fandango[1:3]

详解Pandas之容易让人混淆的行选择和列选择

从结果可以看到,和python的列表切片一样,索引号从0开始,选择了索引号1和2的数据(不包括3)

 第二种,按照指定的索引选择一行或多行,使用loc[]方法

o = fandango.loc[1]

p = fandango.loc[1:3]

详解Pandas之容易让人混淆的行选择和列选择

可以看到,o是一个Series,选择了索引号为1的那一行数据,注意p,它与第一种的列表索引最大的不同是包含了索引号为3的那一行数据

u = fandango.loc[[1,3]]

详解Pandas之容易让人混淆的行选择和列选择

这里按照索引号选择不连续的行

第三种,按照指定的位置选择一行多多行,使用iloc[]方法

在上面的数据中,使用iloc[]和loc[]的效果是一样的,因为索引号都是从0开始并且连续不断,现在我要删除索引号为1和2的这两行

fandango_drop = fandango.drop([1,2], axis=0)

详解Pandas之容易让人混淆的行选择和列选择

可以看到的确删除了两行数据

此时我仍然用loc[]来索引行号为2的那一行,就会出错

s = fandango_drop.loc[2]

详解Pandas之容易让人混淆的行选择和列选择

但是,我使用iloc[]来进行一次

t = fandango_drop.iloc[2]

详解Pandas之容易让人混淆的行选择和列选择

看到了吧,iloc[2]的意思是选择第三行的数据,也就是索引号为4的那一行数据,因为iloc[]的计算也是从0开始的,所以iloc[]适用于数据进行了筛选后造成索引号与原来不一致的情况

loc[]与iloc[]方法之间还有一个巨大的差别,那就是loc[]里的参数是对应的索引值即可,所以参数可以是整数,也可以是字符串。而iloc[]里的参数表示的是第几行的数据,所以只能是整数

 列选择

列选择比较简单,只要直接把列名传递过去即可,如果有多列的数据,要单独指出列名或列的索引号

第一种,选择单列,选择了电影名称那一列

q = fandango['FILM']

详解Pandas之容易让人混淆的行选择和列选择

第二种,通过指定列名选择多列

r = fandango[['FILM','Metacritic']]

详解Pandas之容易让人混淆的行选择和列选择

第三种,非常容易让人混淆的,通过列的索引号选择多列

v = fandango[[0,1,2]]

详解Pandas之容易让人混淆的行选择和列选择

其实,列也是有一个索引号的,看到这里不禁想问,那我要选择前5列呢?我不想写一个长列表,又不想逐个写出这5列的名称,能否用切片呢?

x = fandango[[0:5]]

详解Pandas之容易让人混淆的行选择和列选择

事实证明,这是不行的,更好的方法是在参数中构建一个列表

w = fandango[list(range(5))]

更多的参考资料:http://pandas.pydata.org/pandas-docs/version/0.17.0/api.html

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
用Python编写一个每天都在系统下新建一个文件夹的脚本
May 04 Python
python 捕获 shell/bash 脚本的输出结果实例
Jan 04 Python
用python写一个windows下的定时关机脚本(推荐)
Mar 21 Python
python实现的二叉树定义与遍历算法实例
Jun 30 Python
Python 和 JS 有哪些相同之处
Nov 23 Python
Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例
Mar 15 Python
Python提取支付宝和微信支付二维码的示例代码
Feb 15 Python
Pythony运维入门之Socket网络编程详解
Apr 15 Python
在Python中append以及extend返回None的例子
Jul 20 Python
使用virtualenv创建Python环境及PyQT5环境配置的方法
Sep 10 Python
python用requests实现http请求代码实例
Oct 31 Python
python元组的概念知识点
Nov 19 Python
python的几种矩阵相乘的公式详解
Jul 10 #Python
Python内存管理实例分析
Jul 10 #Python
OpenCV 边缘检测
Jul 10 #Python
python使用Qt界面以及逻辑实现方法
Jul 10 #Python
用Python实现BP神经网络(附代码)
Jul 10 #Python
OpenCV 模板匹配
Jul 10 #Python
8种用Python实现线性回归的方法对比详解
Jul 10 #Python
You might like
搜索和替换文件或目录的一个好类--很实用
2006/10/09 PHP
Yii框架form表单用法实例
2014/12/04 PHP
PHP Static延迟静态绑定用法分析
2016/03/16 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
TP5框架使用QueryList采集框架爬小说操作示例
2020/03/26 PHP
jquery miniui 教程 表格控件 合并单元格应用
2012/11/25 Javascript
js实现网页多级级联菜单代码
2015/08/20 Javascript
Javascript实现跑马灯效果的简单实例
2016/05/31 Javascript
浅析jQuery Ajax通用js封装
2016/06/22 Javascript
Vue 过渡(动画)transition组件案例详解
2017/01/22 Javascript
详解数组Array.sort()排序的方法
2020/05/09 Javascript
node.js平台下利用cookie实现记住密码登陆(Express+Ejs+Mysql)
2017/04/26 Javascript
AngularJS学习笔记之表单验证功能实例详解
2017/07/06 Javascript
Vue.js 踩坑记之双向绑定
2018/05/03 Javascript
python计算最大优先级队列实例
2013/12/18 Python
使用Python获取CPU、内存和硬盘等windowns系统信息的2个例子
2014/04/15 Python
python数据结构之二叉树的建立实例
2014/04/29 Python
Python 写入训练日志文件并控制台输出解析
2019/08/13 Python
pip install python 快速安装模块的教程图解
2019/10/08 Python
python sklearn常用分类算法模型的调用
2019/10/16 Python
Pandas 解决dataframe的一列进行向下顺移问题
2019/12/27 Python
tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解
2020/06/03 Python
Python字典取键、值对的方法步骤
2020/09/30 Python
详解CSS3的perspective属性设置3D变换距离的方法
2016/05/23 HTML / CSS
html5 Canvas画图教程(11)—使用lineTo/arc/bezierCurveTo画椭圆形
2013/01/09 HTML / CSS
利用HTML5中Geolocation获取地理位置调用Google Map API在Google Map上定位
2013/01/23 HTML / CSS
荷兰网上买鞋:MooieSchoenen.nl
2017/09/12 全球购物
美国半成品食材配送服务商:Home Chef
2018/01/25 全球购物
Aeropostale官网:美国著名校园品牌及青少年服饰品牌
2019/03/21 全球购物
寻找迷宫的一条出路,o通路;X:障碍
2016/07/10 面试题
前台接待员岗位职责
2014/01/02 职场文书
电子商务专业毕业生自荐书
2014/06/22 职场文书
本科毕业论文致谢词
2015/05/14 职场文书
新教师教学工作总结
2015/08/12 职场文书
MySQL悲观锁与乐观锁的实现方案
2021/11/02 MySQL
Python作用域和名称空间的详细介绍
2022/04/13 Python