python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix实现


Posted in Python onJune 11, 2018

相信很多人像我一样在学习python,pandas过程中对数据的选取和修改有很大的困惑(也许是深受Matlab)的影响。。。

到今天终于完全搞清楚了!!!

先手工生出一个数据框吧

import numpy as np 
import pandas as pd 
df = pd.DataFrame(np.arange(0,60,2).reshape(10,3),columns=list('abc'))

df 是这样子滴

那么这三种选取数据的方式该怎么选择呢?

一、当每列已有column name时,用 df [ 'a' ] 就能选取出一整列数据。如果你知道column names 和index,且两者都很好输入,可以选择 .loc

df.loc[0, 'a'] 
df.loc[0:3, ['a', 'b']] 
df.loc[[1, 5], ['b', 'c']]

由于这边我们没有命名index,所以是DataFrame自动赋予的,为数字0-9

二、如果我们嫌column name太长了,输入不方便,有或者index是一列时间序列,更不好输入,那就可以选择 .iloc了。这边的 i 我觉得代表index,比较好记点。

df.iloc[1,1] 
df.iloc[0:3, [0,1]] 
df.iloc[[0, 3, 5], 0:2]

iloc 使得我们可以对column使用slice(切片)的方法对数据进行选取。

三、.ix 的功能就更强大了,它允许我们混合使用下标和名称进行选取。 可以说它涵盖了前面所有的用法。基本上把前面的都换成df.ix 都能成功,但是有一点,就是

df.ix [ [ ..1.. ], [..2..] ], 1框内必须统一,必须同时是下标或者名称,2框也一样。 BTW, 1框是用来指定row,2框是指定column, 当然上面所有的取数方法都是这个规则。

这就是我目前的领悟吧。

以上这篇python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python封装对象实现时间效果
Apr 23 Python
python基础教程之字典操作详解
Mar 25 Python
Python用list或dict字段模式读取文件的方法
Jan 10 Python
python-opencv在有噪音的情况下提取图像的轮廓实例
Aug 30 Python
Python3中类、模块、错误与异常、文件的简易教程
Nov 20 Python
python版本的仿windows计划任务工具
Apr 30 Python
python 实现一个反向单位矩阵示例
Nov 29 Python
Python文字截图识别OCR工具实例解析
Mar 05 Python
浅谈PyTorch中in-place operation的含义
Jun 27 Python
基于Python编写一个计算器程序,实现简单的加减乘除和取余二元运算
Aug 05 Python
python 如何做一个识别率百分百的OCR
May 29 Python
Python OpenCV 图像平移的实现示例
Jun 04 Python
python中不能连接超时的问题及解决方法
Jun 10 #Python
Python爬虫实现(伪)球迷速成
Jun 10 #Python
python利用微信公众号实现报警功能
Jun 10 #Python
Python if语句知识点用法总结
Jun 10 #Python
Python continue继续循环用法总结
Jun 10 #Python
Python求解任意闭区间的所有素数
Jun 10 #Python
Python学习小技巧总结
Jun 10 #Python
You might like
虹吸壶是谁发明的?煮出来的咖啡好喝吗
2021/03/04 冲泡冲煮
php中几种常见安全设置详解
2010/04/06 PHP
js取值中form.all和不加all的区别介绍
2014/01/20 Javascript
JavaScript sup方法入门实例(把字符串显示为上标)
2014/10/20 Javascript
使用jQuery实现WordPress中的Ctrl+Enter和@评论回复
2016/05/21 Javascript
JS原型链 详解及示例代码
2016/09/06 Javascript
js 递归和定时器的实例解析
2017/02/03 Javascript
Express与NodeJs创建服务器的两种方法
2017/02/06 NodeJs
仿京东快报向上滚动的实例
2017/12/13 Javascript
JavaScript分步实现一个出生日期的正则表达式
2018/03/22 Javascript
vue 监听键盘回车事件详解 @keyup.enter || @keyup.enter.native
2018/08/25 Javascript
Vue filter格式化时间戳时间成标准日期格式的方法
2018/09/16 Javascript
浅谈让你的代码更简短,更整洁,更易读的ES6小技巧
2018/10/25 Javascript
element vue Array数组和Map对象的添加与删除操作
2018/11/14 Javascript
vue里的data要用return返回的原因浅析
2019/05/28 Javascript
使用axios请求时,发送formData请求的示例
2019/10/29 Javascript
初学vue出现空格警告的原因及其解决方案
2019/10/31 Javascript
js生成1到100的随机数最简单的实现方法
2020/02/07 Javascript
Element MessageBox弹框的具体使用
2020/07/27 Javascript
Python操作列表的常用方法分享
2014/02/13 Python
python比较两个列表大小的方法
2015/07/11 Python
python 设置文件编码格式的实现方法
2017/12/21 Python
python3.7将代码打包成exe程序并添加图标的方法
2019/10/11 Python
关于Flask项目无法使用公网IP访问的解决方式
2019/11/19 Python
详解字符串在Python内部是如何省内存的
2020/02/03 Python
Python模块常用四种安装方式
2020/10/20 Python
HTML5 body设置自适应全屏
2020/05/07 HTML / CSS
澳大利亚领先的在线美容商店:Facial Co
2017/10/22 全球购物
校园文明倡议书
2014/05/16 职场文书
五年级语文教学反思
2016/03/03 职场文书
2016年教师党员创先争优承诺书
2016/03/24 职场文书
解决vue $http的get和post请求跨域问题
2021/06/07 Vue.js
Python MNIST手写体识别详解与试练
2021/11/07 Python
MySQL新手入门进阶语句汇总
2022/09/23 MySQL
TS 类型收窄教程示例详解
2022/09/23 Javascript
MySQL索引失效十种场景与优化方案
2023/05/08 MySQL