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使用正则表达式替换匹配成功的组
Nov 17 Python
Python 内置函数memoryview(obj)的具体用法
Nov 23 Python
pandas 把数据写入txt文件每行固定写入一定数量的值方法
Dec 28 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
Apr 17 Python
用uWSGI和Nginx部署Flask项目的方法示例
May 05 Python
在python中利用try..except来代替if..else的用法
Dec 19 Python
Python MySQLdb 执行sql语句时的参数传递方式
Mar 04 Python
树莓派4B安装Tensorflow的方法步骤
Jul 16 Python
基于python实现操作redis及消息队列
Aug 27 Python
python自动化测试三部曲之request+django实现接口测试
Oct 07 Python
Numpy中np.random.rand()和np.random.randn() 用法和区别详解
Oct 23 Python
Python中的min及返回最小值索引的操作
May 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获取数组长度的方法(有实例)
2013/10/27 PHP
Linux操作系统安装LAMP环境
2015/06/26 PHP
PHP利用二叉堆实现TopK-算法的方法详解
2017/04/24 PHP
在一个form用一个SUBMIT(或button)分别提交到两个处理表单页面的代码
2007/02/15 Javascript
从JavaScript的函数重名看其初始化方式
2007/03/08 Javascript
Add a Table to a Word Document
2007/06/15 Javascript
jquery 锁定弹出层实现代码
2010/02/23 Javascript
JavaScript判断textarea值是否为空并给出相应提示
2014/09/04 Javascript
jquery带动画效果幻灯片特效代码
2015/08/27 Javascript
JavaScript 动态三角函数实例详解
2017/01/08 Javascript
ajax实现加载页面、删除、查看详细信息 bootstrap美化页面!
2017/03/14 Javascript
微信小程序实现图片轮播及文件上传
2017/04/07 Javascript
JS自定义滚动条效果简单实现代码
2020/10/27 Javascript
IScroll5实现下拉刷新上拉加载的功能实例
2017/08/11 Javascript
angularjs路由传值$routeParams详解
2020/09/05 Javascript
vue跨域解决方法
2017/10/15 Javascript
jQuery实现菜单的显示和隐藏功能示例
2018/07/24 jQuery
详解React中传入组件的props改变时更新组件的几种实现方法
2018/09/13 Javascript
如何为你的JS项目添加智能提示与类型检查详解
2019/03/12 Javascript
深入理解es6块级作用域的使用
2019/03/28 Javascript
vue实现分页栏效果
2019/06/28 Javascript
通过Python爬虫代理IP快速增加博客阅读量
2016/12/14 Python
python样条插值的实现代码
2018/12/17 Python
Python正则表达式匹配日期与时间的方法
2019/07/07 Python
详解Django配置JWT认证方式
2020/05/09 Python
scrapy处理python爬虫调度详解
2020/11/23 Python
医学专业毕业生推荐信
2013/11/14 职场文书
竞选学生会主席演讲稿
2014/04/24 职场文书
校园安全标语
2014/06/07 职场文书
水电施工员岗位职责
2015/04/11 职场文书
迎新晚会主持词开场白
2015/05/28 职场文书
2019送给家人们的中秋节祝福语
2019/08/15 职场文书
Mysql服务添加 iptables防火墙策略的方案
2021/04/29 MySQL
如何用JavaScript学习算法复杂度
2021/04/30 Javascript
python爬取豆瓣电影TOP250数据
2021/05/23 Python
如何更改Win11声音输出设备?Win11声音输出设备四种更改方法
2022/04/08 数码科技