详解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以环状形式组合排列图片并输出的方法
Mar 17 Python
python类装饰器用法实例
Jun 04 Python
pandas 对series和dataframe进行排序的实例
Jun 09 Python
Django 日志配置按日期滚动的方法
Jan 31 Python
详解Python self 参数
Aug 30 Python
python中查看.db文件中表格的名字及表格中的字段操作
Jul 07 Python
scrapy框架携带cookie访问淘宝购物车功能的实现代码
Jul 07 Python
解决运行django程序出错问题 'str'object has no attribute'_meta'
Jul 15 Python
python字典通过值反查键的实现(简洁写法)
Sep 30 Python
Python利用Pillow(PIL)库实现验证码图片的全过程
Oct 04 Python
python中xlutils库用法浅析
Dec 29 Python
Python 实现Mac 屏幕截图详解
Oct 05 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
PHP输出控制功能在简繁体转换中的应用
2006/10/09 PHP
php 网页播放器用来播放在线视频的代码(自动判断并选择视频文件类型)
2010/06/03 PHP
session在PHP大型web应用中的使用
2011/06/25 PHP
php缓冲 output_buffering和ob_start使用介绍
2014/01/30 PHP
PHP数组编码gbk与utf8互相转换的两种方法
2016/09/01 PHP
PHP 观察者模式深入理解与应用分析
2019/09/25 PHP
PHP7 弃用功能
2021/03/09 PHP
Javascript MD4
2006/12/20 Javascript
超级简单的图片防盗(HTML),好用
2007/04/08 Javascript
formvalidator验证插件中有关ajax验证问题
2013/01/04 Javascript
封装html的select标签的js操作实例
2013/07/02 Javascript
jquery+json实现数据二级联动的方法
2015/11/28 Javascript
js鼠标单击和双击事件冲突问题的快速解决方法
2016/07/11 Javascript
原生JS轮播图插件
2017/02/09 Javascript
JS排序之选择排序详解
2017/04/08 Javascript
JS实现unicode和UTF-8之间的互相转换互转
2017/07/05 Javascript
JS实现问卷星自动填问卷脚本并在两秒自动提交功能
2020/06/17 Javascript
layer 刷新某个页面的实现方法
2019/09/05 Javascript
jquery轻量级数字动画插件countUp.js使用详解
2019/10/17 jQuery
使用webpack搭建pixi.js开发环境
2020/02/12 Javascript
vue 接口请求地址前缀本地开发和线上开发设置方式
2020/08/13 Javascript
在vue中使用cookie记住用户上次选择的实例(本次例子中为下拉框)
2020/09/11 Javascript
JS禁用右键、禁用Ctrl+u、禁用Ctrl+s、禁用F12的实现代码
2020/12/01 Javascript
Python随机函数random()使用方法小结
2018/04/29 Python
一款纯css3实现的非常实用的鼠标悬停特效演示
2014/11/05 HTML / CSS
美国旅游网站:Tours4Fun
2017/02/17 全球购物
行政前台岗位职责
2013/12/04 职场文书
乐观大学生的自我评价
2014/01/10 职场文书
4s店销售经理岗位职责
2014/07/19 职场文书
创建绿色学校先进个人材料
2014/08/20 职场文书
与美同行演讲稿
2014/09/13 职场文书
检察机关个人对照检查材料
2014/09/15 职场文书
病人家属写给医院的感谢信
2015/01/23 职场文书
2015年度内部审计工作总结
2015/05/20 职场文书
php中配置文件保存修改操作 如config.php文件的读取修改等操作
2021/05/12 PHP
正确使用MySQL update语句
2021/05/26 MySQL