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连接mysql数据库示例(做增删改操作)
Dec 31 Python
Python实现压缩与解压gzip大文件的方法
Sep 18 Python
如何在Python函数执行前后增加额外的行为
Oct 20 Python
浅谈Python 的枚举 Enum
Jun 12 Python
PyCharm代码回滚,恢复历史版本的解决方法
Oct 22 Python
使用Python制作简单的小程序IP查看器功能
Apr 16 Python
django 通过url实现简单的权限控制的例子
Aug 16 Python
Python三元运算与lambda表达式实例解析
Nov 30 Python
Python爬虫解析网页的4种方式实例及原理解析
Dec 30 Python
Python基础之高级变量类型实例详解
Jan 03 Python
pytorch中的上采样以及各种反操作,求逆操作详解
Jan 03 Python
python3处理word文档实例分析
Dec 01 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
ThinkPHP模板替换与系统常量及应用实例教程
2014/08/22 PHP
Symfony2框架创建项目与模板设置实例详解
2016/03/17 PHP
php微信浏览器分享设置以及回调详解
2016/08/01 PHP
JavaScipt基本教程之前言
2008/01/16 Javascript
关于Jquery操作Cookie取值错误的解决方法
2013/08/26 Javascript
JS去掉第一个字符和最后一个字符的实现代码
2014/02/20 Javascript
Jquery解析json字符串及json数组的方法
2015/05/29 Javascript
简介JavaScript中的getUTCFullYear()方法的使用
2015/06/10 Javascript
JavaScript中利用Array和Object实现Map的方法
2015/07/27 Javascript
javascript实现省市区三级联动下拉框菜单
2015/11/17 Javascript
javascript新闻跑马灯实例代码
2020/07/29 Javascript
BootStrap整体框架之基础布局组件
2016/12/15 Javascript
利用Angular+Angular-Ui实现分页(代码加简单)
2017/03/10 Javascript
Angular.JS中select下拉框设置value的方法
2017/06/20 Javascript
vue动态删除从数据库倒入列表的某一条方法
2018/09/29 Javascript
uni app仿微信顶部导航条功能
2019/09/17 Javascript
Python导入oracle数据的方法
2015/07/10 Python
快速了解Python相对导入
2018/01/12 Python
TensorFlow如何实现反向传播
2018/02/06 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
2019/01/30 Python
Python动态语言与鸭子类型详解
2019/07/01 Python
python可视化爬虫界面之天气查询
2019/07/03 Python
Python tkinter实现图片标注功能(完整代码)
2019/12/08 Python
基于PyQT实现区分左键双击和单击
2020/05/19 Python
Python如何爬取51cto数据并存入MySQL
2020/08/25 Python
CSS3对背景图片的裁剪及尺寸和位置的设定方法
2016/03/07 HTML / CSS
css3实现wifi信号逐渐增强效果实例
2017/08/09 HTML / CSS
HTML5 b和i标记将被赋予真正的语义
2009/07/16 HTML / CSS
总经理助理岗位职责
2013/11/08 职场文书
致共产党员倡议书
2014/04/16 职场文书
先进教育工作者事迹材料
2014/12/23 职场文书
公务员年终个人总结
2015/02/12 职场文书
2015年库房管理工作总结
2015/10/14 职场文书
MongoDB数据库常用的10条操作命令
2021/06/18 MongoDB
深入浅析Django MTV模式
2021/09/04 Python
redis protocol通信协议及使用详解
2022/07/15 Redis