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 相关文章推荐
利用Python3分析sitemap.xml并抓取导出全站链接详解
Jul 04 Python
python之virtualenv的简单使用方法(必看篇)
Nov 25 Python
Python爬虫框架Scrapy实例代码
Mar 04 Python
python3使用flask编写注册post接口的方法
Dec 28 Python
Python设计模式之解释器模式原理与用法实例分析
Jan 10 Python
浅谈PyQt5 的帮助文档查找方法,可以查看每个类的方法
Jun 25 Python
Numpy数组array和矩阵matrix转换方法
Aug 05 Python
Python 依赖库太多了该如何管理
Nov 08 Python
浅谈Python中re.match()和re.search()的使用及区别
Apr 14 Python
opencv 分类白天与夜景视频的方法
Jun 05 Python
浅谈Python协程asyncio
Jun 20 Python
使用python绘制分组对比柱状图
Apr 21 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高级OOP技术演示
2009/08/27 PHP
Windows下安装Memcached的步骤说明
2010/04/25 PHP
PHP中new static()与new self()的区别异同分析
2014/08/22 PHP
Laravel 5框架学习之Blade 简介
2015/04/08 PHP
PHP SPL标准库之数据结构栈(SplStack)介绍
2015/05/12 PHP
PHP防盗链的基本思想 防盗链的设置方法
2015/09/25 PHP
thinkPHP下的widget扩展用法实例分析
2015/12/26 PHP
php结合web uploader插件实现分片上传文件
2016/05/10 PHP
PHP PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
在IE中调用javascript打开Excel的代码(downmoon原作)
2007/04/02 Javascript
javascript设计模式 封装和信息隐藏(上)
2012/07/24 Javascript
计算新浪Weibo消息长度(还可以输入119字)
2013/07/02 Javascript
jquery自定义下拉列表示例
2014/04/25 Javascript
JavaScript用select实现日期控件
2015/07/17 Javascript
jQuery删除节点用法示例(remove方法)
2016/09/08 Javascript
微信小程序之ES6与事项助手的功能实现
2016/11/30 Javascript
jQuery插件FusionCharts实现的Marimekko图效果示例【附demo源码】
2017/03/24 jQuery
AngularJS实现的获取焦点及失去焦点时的表单验证功能示例
2017/10/25 Javascript
小程序视频列表中视频的播放与停止的示例代码
2018/07/20 Javascript
[50:50]完美世界DOTA2联赛PWL S3 Galaxy Racer vs Phoenix 第一场 12.10
2020/12/13 DOTA
python创建和删除目录的方法
2015/04/29 Python
python中range()与xrange()用法分析
2016/09/21 Python
在Python 2.7即将停止支持时,我们为你带来了一份python 3.x迁移指南
2018/01/30 Python
利用Python如何制作好玩的GIF动图详解
2018/07/11 Python
python+selenium实现自动抢票功能实例代码
2018/11/23 Python
用python生成(动态彩色)二维码的方法(使用myqr库实现)
2019/06/24 Python
Python Tornado之跨域请求与Options请求方式
2020/03/28 Python
python3 logging日志封装实例
2020/04/08 Python
微软俄罗斯官方网站:Microsoft俄罗斯
2016/09/18 全球购物
opencv实现图像几何变换
2021/03/24 Python
暑假安全教育广播稿
2014/09/10 职场文书
小学见习报告
2014/10/31 职场文书
大学宣传委员竞选稿
2015/11/19 职场文书
Python djanjo之csrf防跨站攻击实验过程
2021/05/14 Python
PyTorch 如何自动计算梯度
2021/05/23 Python
java如何实现获取客户端ip地址的示例代码
2022/04/07 Java/Android