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实现的直接插入排序算法示例
Apr 29 Python
python3读取excel文件只提取某些行某些列的值方法
Jul 10 Python
pandas每次多Sheet写入文件的方法
Dec 10 Python
Python解析json时提示“string indices must be integers”问题解决方法
Jul 31 Python
python openvc 裁剪、剪切图片 提取图片的行和列
Sep 19 Python
pytorch实现特殊的Module--Sqeuential三种写法
Jan 15 Python
Python终端输出彩色字符方法详解
Feb 11 Python
jupyternotebook 撤销删除的操作方式
Apr 17 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
May 27 Python
详解pyinstaller生成exe的闪退问题解决方案
Jun 19 Python
python flask框架快速入门
May 14 Python
Pytorch DataLoader shuffle验证方式
Jun 02 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互换两个变量值的方法(不用第三变量)
2016/11/14 PHP
学习javascript,实现插入排序实现代码
2011/07/31 Javascript
JS:window.onload的使用介绍
2013/11/13 Javascript
Extjs改变树节点的勾选状态点击按钮将复选框去掉
2013/11/14 Javascript
JS实现黑色风格的网页TAB选项卡效果代码
2015/10/09 Javascript
jQuery grep()方法详解及实例代码
2016/10/30 Javascript
javascript实现一个网页加载进度loading
2017/01/04 Javascript
angular实现表单验证及提交功能
2017/02/01 Javascript
JS实现div模块的截图并下载功能
2017/10/17 Javascript
Angularjs之ngModel中的值验证绑定方法
2018/09/13 Javascript
解决IE11 vue +webpack 项目中数据更新后页面没有刷新的问题
2018/09/25 Javascript
Vue中 v-if/v-show/插值表达式导致闪现的原因及解决办法
2018/10/12 Javascript
微信小程序云开发之使用云数据库
2019/05/17 Javascript
layui禁用侧边导航栏点击事件的解决方法
2019/09/25 Javascript
微信小程序自定义tabbar custom-tab-bar 6s出不来解决方案(cover-view不兼容)
2019/11/01 Javascript
使用Python绘制图表大全总结
2017/02/11 Python
用python写一个windows下的定时关机脚本(推荐)
2017/03/21 Python
Python2和Python3中print的用法示例总结
2017/10/25 Python
浅析Python pandas模块输出每行中间省略号问题
2018/07/03 Python
Python eval的常见错误封装及利用原理详解
2019/03/26 Python
解决Django后台ManyToManyField显示成Object的问题
2019/08/09 Python
python使用pip安装模块出现ReadTimeoutError: HTTPSConnectionPool的解决方法
2019/10/04 Python
sklearn线性逻辑回归和非线性逻辑回归的实现
2020/06/09 Python
Python pexpect模块及shell脚本except原理解析
2020/08/03 Python
python实现图书馆抢座(自动预约)功能的示例代码
2020/09/29 Python
Python importlib模块重载使用方法详解
2020/10/13 Python
python爬虫如何解决图片验证码
2021/02/14 Python
艺术设计专业个人求职信
2014/04/10 职场文书
大学毕业生个人自荐书
2014/07/02 职场文书
先进员工事迹材料
2014/12/20 职场文书
内乡县衙导游词
2015/02/05 职场文书
导游词格式
2015/02/13 职场文书
芙蓉镇观后感
2015/06/10 职场文书
公司借款担保书
2015/09/22 职场文书
2016年寒假社会实践活动心得体会
2015/10/09 职场文书
浅谈怎么给Python添加类型标注
2021/06/08 Python