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检测lvs real server状态
Jan 22 Python
Python SQLAlchemy基本操作和常用技巧(包含大量实例,非常好)
May 06 Python
Python中time模块与datetime模块在使用中的不同之处
Nov 24 Python
关于Python中异常(Exception)的汇总
Jan 18 Python
python使用pil进行图像处理(等比例压缩、裁剪)实例代码
Dec 11 Python
查找python项目依赖并生成requirements.txt的方法
Jul 10 Python
详解Python用三种方式统计词频的方法
Jul 29 Python
Python传递参数的多种方式(小结)
Sep 18 Python
Python smtp邮件发送模块用法教程
Jun 15 Python
利用python绘制正态分布曲线
Jan 04 Python
python 管理系统实现mysql交互的示例代码
Dec 06 Python
Python加密技术之RSA加密解密的实现
Apr 08 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中使用__autoload()自动加载未定义类的实现代码
2013/02/06 PHP
PHP代码审核的详细介绍
2013/06/13 PHP
对于ThinkPHP框架早期版本的一个SQL注入漏洞详细分析
2014/07/04 PHP
Yii中srbac权限扩展模块工作原理与用法分析
2016/07/14 PHP
判断多个元素(RADIO,CHECKBOX等)是否被选择的原理说明
2009/02/18 Javascript
js模拟滚动条(横向竖向)
2013/02/22 Javascript
JqueryMobile动态生成listView并实现刷新的两种方法
2014/03/05 Javascript
基于JavaScript代码实现pc与手机之间的跳转
2015/12/23 Javascript
酷炫jQuery全屏3D焦点图动画效果
2016/03/22 Javascript
jQuery插件制作的实例教程
2016/05/16 Javascript
移动端jQuery修正Web页面滑动时div问题的两则实例
2016/05/30 Javascript
Javascript中获取浏览器类型和操作系统版本等客户端信息常用代码
2016/06/28 Javascript
js拖拽功能实现代码解析
2016/11/28 Javascript
canvas绘制多边形
2017/02/24 Javascript
javascript 中null和undefined区分和比较
2017/04/19 Javascript
JavaScript实现一个空中避难的小游戏
2017/06/06 Javascript
15分钟深入了解JS继承分类、原理与用法
2019/01/19 Javascript
详解JavaScript函数callee、call、apply的区别
2019/03/08 Javascript
js 实现 list转换成tree的方法示例(数组到树)
2019/08/18 Javascript
详解js中的几种常用设计模式
2020/07/16 Javascript
element-ui中dialog弹窗关闭按钮失效的解决
2020/09/22 Javascript
[01:01:04]2018DOTA2亚洲邀请赛 4.5 淘汰赛 OpTic vs TNC 第一场
2018/04/06 DOTA
Python使用openpyxl读写excel文件的方法
2017/06/30 Python
python实现基于SVM手写数字识别功能
2020/05/27 Python
python爬虫中get和post方法介绍以及cookie作用
2018/02/08 Python
在python win系统下 打开TXT文件的实例
2018/04/29 Python
python中从str中提取元素到list以及将list转换为str的方法
2018/06/26 Python
详解python实现识别手写MNIST数字集的程序
2018/08/03 Python
一行代码让 Python 的运行速度提高100倍
2018/10/08 Python
Python+OpenCV实现将图像转换为二进制格式
2020/01/09 Python
HTML5 b和i标记将被赋予真正的语义
2009/07/16 HTML / CSS
以工厂直接定价的传奇性能:Ben Hogan Golf
2019/01/04 全球购物
什么是事务?为什么需要事务?
2012/01/09 面试题
群众路线教育实践活动的心得体会
2014/09/03 职场文书
公务员年度考核评语
2014/12/31 职场文书
网上祭英烈活动总结
2015/02/04 职场文书