pandas DataFrame的修改方法(值、列、索引)


Posted in Python onAugust 02, 2019

对于DataFrame的修改操作其实有很多,不单单是某个部分的值的修改,还有一些索引的修改、列名的修改,类型修改等等。我们仅选取部分进行介绍。

一、值的修改

DataFrame的修改方法,其实前面介绍loc方法的时候介绍了一些。

1、 loc方法修改

loc方法实际上是定位某个位置的数据的,但是定位完以后就可以对此位置的数据进行修改,使用此方法可以对DataFrame进行的修改如下:
1.对某行、某N行进行修改;
2.对某列、某N列进行修改;
3.对横坐标为某行或某N行,纵坐标为某列或者某N列的数据进行修改;

可以看出基本用loc方法我们对DataFrame可以进行任意修改了。

1.1 对某行、某N行进行修改

# 对第1行进行修改
test_dict_df.loc[1:1,('english','id','math','name')]=[90,2,100,'Alice_m']
# 对第0行到第1行进行修改
test_dict_df.loc[0:1,('english','id','math','name')]=[[90,1,100,'Alice_m'],[70,2,100,'Bob']]
# 对第0行和第2行进行修改
test_dict_df.loc[0:3:2,('english','id','math','name')]=[[90,1,100,'Alice_m'],[70,2,100,'Bob']]

可以看出具体的方法就是用loc方法,对某行或者某N行进行定位,然后赋予合适的格式的值就可以了。

1.2 对某列、某N列进行修改

学会了使用loc方法对行的修改,那触类旁通,对列的修改也很简单了。对列修改也就是修改此列的所有行。

# 对第english列进行修改
test_dict_df.loc[:,('english')]=[90,80,70,90,90,59] #test_dict_df.loc[:,'english']=[90,80,70,90,90,59]
# 对第english列和id列进行修改,注意赋值的写法
test_dict_df.loc[:,('english','id')]=[[90,1],[80,2],[80,2],[80,2],[80,2],[80,2]]

1.3 对某个区域的值进行修改

# 对第1、2行的english列和 id列进行修改
test_dict_df.loc[1:2,('english','id')]=[[38,2],[23,2]]

1.4总结

可以看到loc方法就是,只要你能选到某个或者某个区域的值,然后就可以对此部分的值进行修改。但是要注意赋值部分的组织方式。

2、 iloc、at、iat方法修改

类比于上面的方式,其实只要能选择,都是可以修改的。选择方法可以看pandas DataFrame的查询(选择)篇。

二、列名的修改

1、直接全部更改

这种方法是对DataFrame的列名进行重新赋值,比较暴力直接。

test_dict_df.columns=['english_new','id_new','math_new','name_new']

2、使用rename方法

这种方法是比较推荐的,通过rename方法,注意参数inplace=True的时候,才能真正的在原来的DataFrame上进行修改。

test_dict_df.rename(columns={'english_new':'english'},inplace=True)

三、索引的修改

1、修改索引名称

上面的rename方法,如果不写columns=xx就默认修改索引了 。

test_dict_df.rename({0:'english1'},inplace=True)

2、重置索引

通过reset_index()方法我们可以重置索引,drop参数为True时,直接丢弃原来的索引,否则原来的索引新生成一列名为'index'的列:

test_dict_df.reset_index(inplace=True,drop=True)

3、设置其他列为索引

当然我们也可以用其他列为索引,通过set_index()方法:

test_dict_df.set_index('id_new')

四、总结

可以看到,所谓的修改首先要能选择修改的位置,即定位,然后对确定好的位置进行重新赋值,所以我们学会了如何选择数据,也就基本能修改此处的数据。

源代码:github

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

Python 相关文章推荐
二种python发送邮件实例讲解(python发邮件附件可以使用email模块实现)
Dec 03 Python
利用Python开发实现简单的记事本
Nov 15 Python
Pycharm学习教程(4) Python解释器的相关配置
May 03 Python
python urllib爬取百度云连接的实例代码
Jun 19 Python
Python实现将文本生成二维码的方法示例
Jul 18 Python
Mac中Python 3环境下安装scrapy的方法教程
Oct 26 Python
查看Python依赖包及其版本号信息的方法
Aug 13 Python
python+rsync精确同步指定格式文件
Aug 29 Python
django2.2安装错误最全的解决方案(小结)
Sep 24 Python
pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)
Jun 24 Python
Keras搭建自编码器操作
Jul 03 Python
python如何对链表操作
Oct 10 Python
Flask框架钩子函数功能与用法分析
Aug 02 #Python
pandas DataFrame行或列的删除方法的实现示例
Aug 02 #Python
Python基于BeautifulSoup和requests实现的爬虫功能示例
Aug 02 #Python
详解pandas DataFrame的查询方法(loc,iloc,at,iat,ix的用法和区别)
Aug 02 #Python
pandas DataFrame创建方法的方式
Aug 02 #Python
django项目环境搭建及在虚拟机本地创建django项目的教程
Aug 02 #Python
Django缓存系统实现过程解析
Aug 02 #Python
You might like
PHP Mysql编程之高级技巧
2008/08/27 PHP
ThinkPHP 防止表单重复提交的方法
2011/08/08 PHP
PHP与SQL注入攻击防范小技巧
2011/09/16 PHP
关于PHP内存溢出问题的解决方法
2013/06/25 PHP
PHP输出缓存ob系列函数详解
2014/03/11 PHP
php实现根据url自动生成缩略图的方法
2014/09/23 PHP
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
PHP实现git部署的方法教程
2017/12/19 PHP
php获取用户真实IP和防刷机制的实例代码
2018/11/28 PHP
jQuery学习2 选择器的使用说明
2010/02/07 Javascript
使用js检测浏览器是否支持html5中的video标签的方法
2014/03/12 Javascript
Node.js异步I/O学习笔记
2014/11/04 Javascript
node.js中的http.response.writeHead方法使用说明
2014/12/14 Javascript
js小数计算小数点后显示多位小数的实现方法
2016/05/30 Javascript
基于cssSlidy.js插件实现响应式手机图片轮播效果
2016/08/30 Javascript
JS命令模式例子之菜单程序
2016/10/10 Javascript
Javascript中 toFixed四舍六入方法
2017/08/21 Javascript
VUE+Element UI实现简单的表格行内编辑效果的示例的代码
2018/10/31 Javascript
利用hasOwnProperty给数组去重的面试题分享
2018/11/05 Javascript
vue中利用simplemde实现markdown编辑器(增加图片上传功能)
2019/04/29 Javascript
vue滚动固定顶部及修改样式的实例代码
2019/05/30 Javascript
Vue的data、computed、watch源码浅谈
2020/04/04 Javascript
[03:17]DOTA2-DPC中国联赛1月29日Recap集锦
2021/03/11 DOTA
Python计算程序运行时间的方法
2014/12/13 Python
详解Django中的ifequal和ifnotequal标签使用
2015/07/16 Python
python实现对指定字符串补足固定长度倍数截断输出的方法
2018/11/15 Python
Python OpenCV对本地视频文件进行分帧保存的实例
2019/01/08 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
2019/04/23 Python
Python实现微信机器人的方法
2019/09/06 Python
python3下pygame如何实现显示中文
2020/01/11 Python
python如何将图片转换素描画
2020/09/08 Python
德国、奥地利和瑞士最大的旅行和度假门户网站:HolidayCheck
2019/11/14 全球购物
PatPat香港:婴童服饰和亲子全家装在线购物
2020/09/27 全球购物
迎新晚会策划方案
2014/06/13 职场文书
MySql学习笔记之事务隔离级别详解
2021/05/12 MySQL
C3 线性化算法与 MRO之Python中的多继承
2021/10/05 Python